天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

新書《JavaScript設(shè)計模式 》出版,感謝支持

發(fā)布時間:2016-11-22 21:43

  本文關(guān)鍵詞:JavaScript啟示錄,由筆耕文化傳播整理發(fā)布。


小記

這本書的出版得益于人民郵電出版社陳冀康編輯的推薦,加上之前博客又翻譯了一些原作者的文字,所以就承擔了該書的翻譯工作,不同于博客的是,由于設(shè)計模式本身就難以表達,加上英文版有很多錯誤(評價不佳),原本年初就可以出版的書,一直等到5月份原作者更新最完善版本以后,前后進行了5次譯稿校對,才得以出版,再次感謝作為專業(yè)翻譯媳婦的幫忙和編輯的耐心。

本書介紹

設(shè)計模式是解決軟件設(shè)計中常見問題的可復(fù)用方案。學(xué)習任何編程語言,設(shè)計模式都是一個令人興奮和極具吸引力的話題。

本書是JavaScript編程設(shè)計模式的學(xué)習指南。全書分為14章。首先介紹了什么是模式、模式的結(jié)構(gòu)、類別、模式的分類、如何編寫模式等等;然后,集中介紹了很多流行的設(shè)計模式在JavaScript中的應(yīng)用,包括Module(模塊)模式、Observer(觀察者)模式、Facade(外觀)模式和Mediator(中介者)模式;最后,還探討了模塊化的JavaScript模式、jQuery及其插件中的設(shè)計模式。

本書適合專業(yè)的Web開發(fā)人員和前端工程師閱讀。通過閱讀本書,他們將能夠提高對設(shè)計模式的認識,并學(xué)會如何將設(shè)計模式應(yīng)用到JavaScript編程語言中。 購買鏈接,,請查看右側(cè)的圖片

章節(jié)示例

Command模式旨在將方法調(diào)用、請求或操作封裝到單一對象中,從而根據(jù)我們不同的請求對客戶進行參數(shù)化和傳遞可供執(zhí)行的方法調(diào)用。此外,這種模式將調(diào)用操作的對象與知道如何實現(xiàn)該操作的對象解耦,并在交換出具體類(對象)方面提供更大的整體靈活性。

用基于類的編程語言解釋具體類是最恰當?shù),它們與抽象類的思想相關(guān)。一個抽象類定義一個接口,但不一定為它所有的成員函數(shù)提供實現(xiàn)。它作為一個基類,派生出其他類。實現(xiàn)缺失功能的派生類被稱為一個具體的類(見圖9-7)。

新書《JavaScript設(shè)計模式 》出版,感謝支持


 
圖9-7  Command模式

Command模式背后的主要思想是:它為我們提供了一種分離職責的手段,這些職責包括從執(zhí)行命令的任意地方發(fā)布命令以及將該職責轉(zhuǎn)而委托給不同對象。

實施明智的、簡單的命令對象將把action動作和調(diào)用該動作的對象綁定在一起。它們始終包括一個執(zhí)行操作(如run()或execute())。所有具有相同接口的Command對象可以根據(jù)需要輕松交換,這被認為是該模式的一個更大好處。為了演示Command模式,我們將創(chuàng)建一個簡單的汽車購買服務(wù)。

(function () { var CarManager = { // 請求信息 requestInfo: function (model, id) { return "The information for " + model + " with ID " + id + " is foobar"; }, // 訂購汽車 buyVehicle: function (model, id) { return "You have successfully purchased Item " + id + ", a " + model; }, // 組織一個view arrangeViewing: function (model, id) { return "You have successfully booked a viewing of " + model + " ( " +id + " ) "; } }; })();

看一下上面的代碼,它可以通過直接訪問對象輕松地調(diào)用我們的CarManager方法。我們認為這里沒有任何錯誤,從技術(shù)上講,它是完全有效的JavaScript。然而,它在有些情況下可能是不利的。

例如,試想如果CarManager里的核心API改變了會怎么樣。這將要求程序里所有直接訪問這些方法的對象都需要進行修改。這可能被視為一個耦合層,它實際上最大程度地違反了松耦合對象的OOP方法論。而我們可以通過進一步抽象API來解決這個問題。

現(xiàn)在讓我們來擴展CarManager,這樣Command模式下的應(yīng)用程序會產(chǎn)生如下結(jié)果:接受任意可以在CarManager對象上執(zhí)行的命名方法,傳遞可以使用的任意數(shù)據(jù),如CarModel(模型)和ID。這是我們希望能夠?qū)崿F(xiàn)的內(nèi)容:

CarManager.execute("buyVehicle", "Ford Escort", "453543");

按照這個結(jié)構(gòu),我們現(xiàn)在應(yīng)該為CarManager.execute方法添加一個定義,如下所示:

CarManager.execute = function (name) { return CarManager[name] && CarManager[name].apply(CarManager, [].slice.call(arguments, 1)); };

因此我們最終的示例調(diào)用看起來是這樣的:

CarManager.execute("arrangeViewing", "Ferrari", "14523"); CarManager.execute("requestInfo", "Ford Mondeo", "54323"); CarManager.execute("requestInfo", "Ford Escort", "34232"); CarManager.execute("buyVehicle", "Ford Escort", "34232");

推薦讀物

任何一本書都不是完美的,所以除了本書之外,如果讀者需要繼續(xù)深入了解JavaScript,我很樂意向您推薦以下書目。

其它

本人的另外一本作品《JavaScript啟示錄》也將于9月份出版,敬請期待。


  本文關(guān)鍵詞:JavaScript啟示錄,由筆耕文化傳播整理發(fā)布。



本文編號:186723

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/mishujinen/186723.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶dd310***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com
日本免费一本一二区三区| 九九视频通过这里有精品| 精品国产丝袜一区二区| 韩日黄片在线免费观看| 91熟女大屁股偷偷对白| 翘臀少妇成人一区二区| 不卡视频免费一区二区三区| 亚洲国产丝袜一区二区三区四| 国产又粗又硬又长又爽的剧情| 日韩一级欧美一级久久| 五月天丁香亚洲综合网| 成年午夜在线免费视频| 五月天丁香婷婷一区二区| 亚洲一区二区三在线播放| 国产精品午夜福利免费阅读| 98精品永久免费视频| 国产又长又粗又爽免费视频| 亚洲精品深夜福利视频| 欧美一区二区三区99| 极品熟女一区二区三区| 亚洲最新中文字幕在线视频 | 日韩黄片大全免费在线看| 国产又爽又猛又粗又色对黄 | 偷拍偷窥女厕一区二区视频| 国产精品不卡一区二区三区四区| 国产偷拍精品在线视频| 亚洲精品日韩欧美精品| 婷婷色国产精品视频一区| 大香蕉伊人精品在线观看| 99久久精品久久免费| 久久99精品日韩人妻| 日韩一级毛一欧美一级乱| 很黄很污在线免费观看| 国产精品一区二区成人在线| 久久99精品国产麻豆婷婷洗澡| 黄色片一区二区在线观看| 午夜激情视频一区二区| 人妻少妇久久中文字幕久久| 最新午夜福利视频偷拍| 亚洲欧美国产精品一区二区| 日韩精品一级片免费看|