javascript 設計模式之單例模式javascript
javascript 設計模式之迭代器模式markdown
適配器模式:將一個類(對象)的接口(方法或屬性)轉化成客戶但願的另一個接口(方法或屬性),使得本來因爲接口不兼容而不能一塊兒工做的那些類(對象)能夠正常協做。簡單理解就是爲兼容而生的 「轉換器」。
代理模式:使用者無權訪問目標對象,中間加代理,經過代理作受權和控制
裝飾者(decorator)模式,又名裝飾器模式,可以在不改變對象自身的基礎上,在程序運行期間給對像動態的添加職責。與繼承相比,裝飾者是一種更輕便靈活的作法。
適配器: 特色在於兼容,並不預處理請求,直接將請求轉接給新方法,新方法與原方法名能夠不一樣。好比兼容接口請求,舊的 ajax 成功適配成新的 fetch 請求; 還有兼容不一樣瀏覽器之間的事件處理
代理: 特色在於隔離,要訪問本體,要先訪問下代理對象,起到保護的做用。控制對本體對象的訪問。代理提供的方法提倡與本體方法名相同,好比預加載,以及經紀人與明星的事
裝飾者: 特色在於加強,爲對象添加功能,可添加屢次(好比既打印日誌,又添加方法說明),造成裝飾鏈,而適配器或代理只會對原有對象包裝一次。好比 React 高階組件
裝飾者模式是「新增行爲」,代理模式是「控制訪問行爲」,適配器模式是"轉換行爲"。
代理模式可能會有處理,再去調用本體。而適配器模式,則是直接轉接給原方法。有個比方:
「代理模式「(嚴父):學校繳費要一千塊,這麼多? "適配器模式」 (慈母):學校繳費要一千塊,給給給。