<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

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

      2013-06-14 09:58  湯姆大叔  閱讀(14746)  評論(67)    收藏  舉報

      小記

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

      本書介紹

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

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

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

      章節示例

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

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


       
      圖9-7  Command模式

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

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

      (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 + " ) ";
             }
      
          };
      })();

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

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

      現在讓我們來擴展CarManager,這樣Command模式下的應用程序會產生如下結果:接受任意可以在CarManager對象上執行的命名方法,傳遞可以使用的任意數據,如CarModel(模型)和ID。這是我們希望能夠實現的內容:

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

      按照這個結構,我們現在應該為CarManager.execute方法添加一個定義,如下所示:

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

      因此我們最終的示例調用看起來是這樣的:

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

      推薦讀物

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

      • 《JavaScript權威指南》,作者:David Flanagan
      • 《JavaScript編程精解》,作者:Marijn Haverbeke 譯者(湯姆大叔)
      • 《JavaScript模式》,作者:Stoyan Stefanov
      • 《編寫可維護的JavaScript》 ,作者:Nicholas Zakas
      • 《JavaScript語言精粹》,作者:Douglas Crockford

      其它

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

      主站蜘蛛池模板: 亚洲成人高清av在线| 人妻少妇精品中文字幕| 日韩激情一区二区三区| 樱花草视频www日本韩国| 亚洲 日本 欧洲 欧美 视频| 防城港市| 久久99精品国产麻豆婷婷| 国产中文字幕在线一区| 亚洲国产精品第一区二区| 国产精品538一区二区在线| 日韩精品18禁一区二区| 亚洲精品韩国一区二区| 国偷自产一区二区三区在线视频| 一出一进一爽一粗一大视频| 免费观看欧美猛交视频黑人| 中文字幕制服国产精品| 亚洲成aⅴ人在线电影| 成人国产乱对白在线观看| 看免费的无码区特aa毛片| 日产国产一区二区不卡| 亚洲精品一区二区在线播| 精品人妻系列无码人妻漫画| 精品一卡2卡三卡4卡乱码精品视频| 免费国产好深啊好涨好硬视频 | 99在线精品免费视频九九视| 日韩精品人妻中文字幕| 麻豆精品一区二区三区蜜桃| 日韩欧美aⅴ综合网站发布| 米奇亚洲国产精品思久久| 亚洲国产美女精品久久久久| 亚洲午夜香蕉久久精品| AV在线亚洲欧洲日产一区二区| 欧美肥老太牲交大战| 亚在线观看免费视频入口| 天天操夜夜操| AV最新高清无码专区| 中文字幕国产精品一二区| 成人亚洲欧美成αⅴ人在线观看| 视频一区视频二区视频三| 国精品无码人妻一区二区三区| 九九热在线视频免费观看|