JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐_第1頁
JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐_第2頁
JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐_第3頁
JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐_第4頁
JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐讀書筆記模板01思維導(dǎo)圖讀書筆記目錄分析內(nèi)容摘要精彩摘錄作者介紹目錄0305020406思維導(dǎo)圖實(shí)踐開發(fā)開發(fā)示例設(shè)計(jì)模式代碼面向?qū)ο竽J叫〗Y(jié)對象例子第章函數(shù)狀態(tài)代理原則命令抽象類應(yīng)用本書關(guān)鍵字分析思維導(dǎo)圖內(nèi)容摘要內(nèi)容摘要本書是根據(jù)JavaScript語言的特性專門針對JavaScript語言全面總結(jié)的設(shè)計(jì)模式。全書共分為三個(gè)部分,第一部分講解了JavaScript語言面向?qū)ο蠛秃瘮?shù)式編程的知識(shí)及其在設(shè)計(jì)模式方面的作用;第二部分通過一步步完善的代碼示例,由淺入深地講解了16個(gè)設(shè)計(jì)模式;第三部分講述了面向?qū)ο蟮脑O(shè)計(jì)原則及其在設(shè)計(jì)模式中的體現(xiàn),以及一些常見的面向?qū)ο缶幊碳记珊腿粘i_發(fā)中的代碼重構(gòu)。書中所有示例均來自作者長期的開發(fā)實(shí)踐,與實(shí)際開發(fā)密切相關(guān),適合Web前端開發(fā)人員閱讀。讀書筆記讀書筆記之前也讀過設(shè)計(jì)模式,這回讀的時(shí)候,有了工作經(jīng)歷,就能發(fā)現(xiàn)自己寫的哪些還能優(yōu)化,確實(shí)有的書就得多度幾遍,學(xué)以致用才是最好的讀書方式。這本書對于部分設(shè)計(jì)模式有相對深入的講解,雖然有些我了解的不是很透徹。有很多有趣的例子,比較好理解,先大略的看完一遍,后面再來精讀吧。優(yōu)點(diǎn):1、這本書把設(shè)計(jì)模式用通俗易懂的語言講解的很簡單,很清楚。[流淚]我特么是不是沒有天賦看的頭疼死了那么多設(shè)計(jì)模式越發(fā)覺得年前寫的代碼是??了太難受了看懂的帶我飛理解[大哭]。代碼永遠(yuǎn)在重構(gòu)和重構(gòu)的路上,經(jīng)典的設(shè)計(jì)模式是值得反復(fù)鉆研和討論的。作者使用通俗易懂的正反例來突出設(shè)計(jì)模式的優(yōu)點(diǎn),在介紹設(shè)計(jì)模式的優(yōu)點(diǎn)時(shí)準(zhǔn)確的體現(xiàn)出使用場景。也會(huì)發(fā)現(xiàn)原來通過這些優(yōu)秀的模式可以寫出這么易讀、靈活、易維護(hù)的代碼,作者為我的代碼世界打開了一扇窗,接下來我會(huì)回頭看看以前寫的代碼,琢磨琢磨有沒有更好的方式。書真的寫得很好。精彩摘錄精彩摘錄換句話說,多態(tài)最根本的作用就是通過把過程化的條件分支語句轉(zhuǎn)化為對象的多態(tài)性,從而消除這些條件分支語句。同一操作作用于不同的對象上面,可以產(chǎn)生不同的解釋和不同的執(zhí)行結(jié)果多態(tài)背后的思想是將“做什么”和“誰去做以及怎樣去做”分離開來,也就是將“不變的事物”與“可能改變的事物”分離開來。所有設(shè)計(jì)模式的實(shí)現(xiàn)都遵循一條原則,即“找出程序中變化的地方,并將變化封裝起來”。定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可以相互替換。鴨子類型指導(dǎo)我們只**對象的行為,而不**對象本身,也就是**HAS-A,而不是IS-A。靜態(tài)類型語言在編譯時(shí)便已確定變量的類型,而動(dòng)態(tài)類型語言的變量類型要到程序運(yùn)行的時(shí)候,待變量被賦予某個(gè)值之后,才會(huì)具有某種類型。單例模式的定義是:保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。目錄分析第1章面向?qū)ο蟮腏avaScript第3章閉包和高階函數(shù)第2章this、call和apply第一部分基礎(chǔ)知識(shí)第1章面向?qū)ο蟮腏avaScript1.1動(dòng)態(tài)類型語言和鴨子類型1.2多態(tài)1.3封裝1.4原型模式和基于原型繼承的JavaScript對象系統(tǒng)第2章this、call和apply2.1this2.2call和apply第3章閉包和高階函數(shù)3.1閉包3.2高階函數(shù)3.3小結(jié)第4章單例模式第6章代理模式第5章策略模式第二部分設(shè)計(jì)模式第7章迭代器模式第8章發(fā)布—訂閱模式第9章命令模式第10章組合模式第二部分設(shè)計(jì)模式第11章模板方法模式第13章職責(zé)鏈模式第12章享元模式第二部分設(shè)計(jì)模式第14章中介者模式第15章裝飾者模式第16章狀態(tài)模式第17章適配器模式第二部分設(shè)計(jì)模式第4章單例模式4.1實(shí)現(xiàn)單例模式4.2透明的單例模式4.3用代理實(shí)現(xiàn)單例模式4.4JavaScript中的單例模式4.5惰性單例4.6通用的惰性單例4.7小結(jié)第5章策略模式5.1使用策略模式計(jì)算獎(jiǎng)金5.2JavaScript版本的策略模式5.3多態(tài)在策略模式中的體現(xiàn)5.4使用策略模式實(shí)現(xiàn)緩動(dòng)動(dòng)畫5.5更廣義的“算法”5.6表單校驗(yàn)5.7策略模式的優(yōu)缺點(diǎn)5.8一等函數(shù)對象與策略模式5.9小結(jié)第6章代理模式6.1第一個(gè)例子——小明追MM的故事6.2保護(hù)代理和虛擬代理6.3虛擬代理實(shí)現(xiàn)圖片預(yù)加載6.4代理的意義6.5代理和本體接口的一致性6.6虛擬代理合并HTTP請求6.7虛擬代理在惰性加載中的應(yīng)用6.8緩存代理6.9用高階函數(shù)動(dòng)態(tài)創(chuàng)建代理第7章迭代器模式7.1jQuery中的迭代器7.2實(shí)現(xiàn)自己的迭代器7.3內(nèi)部迭代器和外部迭代器7.4迭代類數(shù)組對象和字面量對象7.5倒序迭代器7.6中止迭代器7.7迭代器模式的應(yīng)用舉例7.8小結(jié)第8章發(fā)布—訂閱模式8.1現(xiàn)實(shí)中的發(fā)布-訂閱模式8.2發(fā)布-訂閱模式的作用8.3DOM事件8.4自定義事件8.5發(fā)布-訂閱模式的通用實(shí)現(xiàn)8.6取消訂閱的事件8.7真實(shí)的例子——網(wǎng)站登錄8.8全局的發(fā)布-訂閱對象8.9模塊間通信第9章命令模式9.1命令模式的用途9.2命令模式的例子——菜單程序9.3JavaScript中的命令模式9.4撤銷命令9.5撤消和重做9.6命令隊(duì)列9.7宏命令9.8智能命令與傻瓜命令9.9小結(jié)第10章組合模式10.1回顧宏命令10.2組合模式的用途10.3請求在樹中傳遞的過程10.4更強(qiáng)大的宏命令10.5抽象類在組合模式中的作用10.6透明性帶來的安全問題10.7組合模式的例子——掃描文件夾10.8一些值得注意的地方10.9引用父對象第11章模板方法模式11.1模板方法模式的定義和組成11.2第一個(gè)例子——CoffeeorTea11.3抽象類11.4模板方法模式的使用場景11.5鉤子方法11.6好萊塢原則11.7真的需要“繼承”嗎11.8小結(jié)第12章享元模式12.1初識(shí)享元模式12.2內(nèi)部狀態(tài)與外部狀態(tài)12.3享元模式的通用結(jié)構(gòu)12.4文件上傳的例子12.5享元模式的適用性12.6再談內(nèi)部狀態(tài)和外部狀態(tài)12.7對象池12.8小結(jié)第13章職責(zé)鏈模式13.1現(xiàn)實(shí)中的職責(zé)鏈模式13.2實(shí)際開發(fā)中的職責(zé)鏈模式13.3用職責(zé)鏈模式重構(gòu)代碼13.4靈活可拆分的職責(zé)鏈節(jié)點(diǎn)13.5異步的職責(zé)鏈13.6職責(zé)鏈模式的優(yōu)缺點(diǎn)13.7用AOP實(shí)現(xiàn)職責(zé)鏈13.8用職責(zé)鏈模式獲取文件上傳對象13.9小結(jié)第14章中介者模式14.1現(xiàn)實(shí)中的中介者14.2中介者模式的例子——泡泡堂游戲14.3中介者模式的例子——購買商品14.4小結(jié)第15章裝飾者模式15.1模擬傳統(tǒng)面向?qū)ο笳Z言的裝飾者模式15.2裝飾者也是包裝器15.3回到JavaScript的裝飾者15.4裝飾函數(shù)15.5用AOP裝飾函數(shù)15.6AOP的應(yīng)用實(shí)例15.7裝飾者模式和代理模式15.8小結(jié)第16章狀態(tài)模式16.1初識(shí)狀態(tài)模式16.2狀態(tài)模式的定義16.3狀態(tài)模式的通用結(jié)構(gòu)16.4缺少抽象類的變通方式16.5另一個(gè)狀態(tài)模式示例——文件上傳16.6狀態(tài)模式的優(yōu)缺點(diǎn)16.7狀態(tài)模式中的性能優(yōu)化點(diǎn)16.8狀態(tài)模式和策略模式的關(guān)系16.9JavaScript版本的狀態(tài)機(jī)第17章適配器模式17.1現(xiàn)實(shí)中的適配器17.2適配器模式的應(yīng)用17.3小結(jié)第18章單一職責(zé)原則第19章最少知識(shí)原則第20章開放-封閉原則第21章接口和面向接口編程第22章代碼重構(gòu)12345第三部分設(shè)計(jì)原則和編程技巧第18章單一職責(zé)原則18.1設(shè)計(jì)模式中的SRP原則18.2何時(shí)應(yīng)該分離職責(zé)18.3違反SRP原則18.4SRP原則的優(yōu)缺點(diǎn)第19章最少知識(shí)原則19.1減少對象之間的聯(lián)系19.2設(shè)計(jì)模式中的最少知識(shí)原則19.3封裝在最少知識(shí)原則中的體現(xiàn)第20章開放-封閉原則20.1擴(kuò)展window.onload函數(shù)20.2開放和封閉20.3用對象的多態(tài)性消除條件分支20.4找出變化的地方20.5設(shè)計(jì)模式中的開放-封閉原則20.6開放-封閉原則的相對性20.7接受第一次愚弄第21章接口和面向接口編程21.1回到Java的抽象類21.2interface21.3JavaScript語言是否需要抽象類和interface21.4用鴨子類型進(jìn)行接口檢查21.5用TypeScript編寫基于interface的命令模式第22章代碼重構(gòu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論