組合模式:
組合模式可以形象的比如成樹,有葉子節點(Leaf),樹枝節點(Composite),這兩個節點都需要繼承節點的屬性(Component), 這樣用戶使用起來才能達到透明性。且需要具備子節點的管理特點。
子節點管理操作的不同可以分兩種組合結構:子節點操作放在Component中
?
?觀察者模式:
觀察者(Observer)模式又名發布-訂閱(Publish/Subscribe)模式。GOF 給觀察者模
式如下定義:定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依
賴于它的對象都得到通知并被自動更新。
GOF 給出了以下使用觀察者模式的情況:
1) 當一個抽象模型有兩個方面, 其中一個方面依賴于另一方面。將這二者封裝在獨立
的對象中以使它們可以各自獨立地改變和復用。
2) 當對一個對象的改變需要同時改變其它對象, 而不知道具體有多少對象有待改變。
3) 當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之, 你不希望
這些對象是緊密耦合的。
觀察者可以按是否把“目標對象”變化細節主動給觀察者分為:“推模式”和“拉模式”。
?
策略模式(Strategy): 多態的簡單利用。
區分變化的和不變的。
不變化的封裝在基類中。變化的先分組,將高層通用接口封裝在基類中,具體實現由子類決定。
?
?
?
建造模式(Build):將產品的生產過程抽象出“建造抽象類”,由具體的方法生產具體的產品。指導者調用抽象類中的方法創建產品,不用關心具體建 造細節。而使用者直接使用指導者創建產品。 建造模式與工廠方法很像,區別:在原來的工廠方法模式中,產品內部的表
象是由產品自身來決定的;而在建造模式中則是“外部化”為由建造者來負責。這樣定義一個
新的具體建造者角色就可以改變產品的內部表象,符合“開閉原則”。
?
門面模式(facade): 簡單的將子系統的被調用方法都封裝在一個類中供其他客戶使用。
?
命令模式:是回調函數在面向對象領域的應用。
將命令抽象出接口,再把一系列的具體命令傳入invoker類統一調用。
若命令中實現了undo,redo操作,那么invoker中可以進行命令的回滾,重做,以及事務的實現。
?
適配器模式(Adapter) :適配器模式就想是變壓器一樣,是將已有實現向目標接口的轉換。比如在我的系統中已經設計好了接口結構,客戶已經在使用這個接口,但是對于實現我想調用已 有的設計,但是已有的設計跟我的接口不一致,那么現在就需要使用適配器模式,將已有實現轉換成我的接口的形式。
<!--{12838463842520}-->
將適 配器模式分為類適配器模式和對象適配器模式。區別僅在于適配器角色對于被適配角色的適配是通過繼承完成的還是通過組合來完成的. 一般使用對象適配器。
與代理模式對比,兩者的主要區別在于代理模式應用的情況是不 改變接口命名的,而且是對已有接口功能的一種控制;而適配器模式則強調接口轉換。
?
?
代理模式:
繼承與真實對象一樣的接口,實現對真實對象的代理。適合做切面。符合“對擴展開放、對修改關閉”原則。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
