模式的起點

broadviewbj發表於2011-08-12

模式的起點

¡  工廠方法(Factory Method Pattern

模式起點:將程式中建立物件的操作單獨進行處理,大大提高了系統擴充套件的柔性,介面的抽象化處理給相互依賴的物件建立提供了最好的抽象模式。

典型應用:工廠方法模式是最簡單也最容易理解的模式之一。其關注的核心是對於物件建立這件事兒的分離。

¡  單例(Singleton Pattern

模式起點:一個類只有一個例項,且提供一個訪問全域性點的方式,更加靈活地保證了例項的建立和訪問約束,並且唯一約束的實施由類本身實現。

典型應用:一個類只有一個例項,經常被應用於Façade模式,稱為單例外觀。

¡  命令(Command Pattern

模式起點:將請求封裝為物件,從而將命令的執行和責任分開。通常在佇列中等待命令,這和現實多麼相似呀。如果你喜歡發號施令,請考慮你的ICommand吧。

典型應用:選單系統。

¡  策略(Strategy Pattern

模式起點:策略模式,將易於變化的部分封裝為介面,通常Strategy 封裝一些運演算法則,使之能互換。

典型應用:資料層常考慮以策略提供演算法和資料的分離。

¡  迭代器(Iterator Pattern

模式起點:相信任何的系統中,都會用到陣列、集合、連結串列、佇列這樣的型別吧,那麼你就不得不關心迭代模式的來龍去脈。在遍歷演算法中,迭代模式提供了遍歷的順序訪問容器,GOF給出的定義為:提供一種方法訪問一個容器(Container)物件中各個元素,而又無須暴露該物件的內部細節。

典型應用:.NET中就是應用了迭代器來建立用於foreach的集合。

¡  模板方法(Template Method Pattern

模式起點:顧名思義,模板方法就是在父類中定義模板,然後由子類實現。具體的實現一般由父類定義演算法的骨架,然後將演算法的某些步驟委託給子類。

典型應用:ASP .NETPage類。

¡  觀察者(Observer Pattern

模式起點:定義物件間的一種一對多的依賴關係,當一個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。觀察者和被觀察者的分開,為模組劃分提供了清晰的界限。

典型應用:在.NET中使用委託和事件可以更好地實現觀察者模式,事件的註冊和撤銷不就對應著觀察者對其物件的觀察嗎?

¡  職責鏈(Chain of Responsibility Pattern

模式起點:將操作組成一個連結串列,透過遍歷操作連結串列找到合適的處理器。透過統一的介面,被多個處理器實現,每個處理器都有後繼處理器,可以將請求沿著處理器鏈傳遞。

典型應用:GUI系統的事件傳播。

¡  橋接(Bridge Pattern

模式起點:把實現和邏輯分開,對於我們深刻理解物件導向聚合複用的思想甚有助益。

典型應用:多版本.NET Framework透過環境變數與對應版本應用建立橋樑。

¡  代理(Proxy Pattern

模式起點:將複雜的邏輯封裝起來,透過代理物件控制實際物件的建立和訪問,由代理物件遮蔽原有邏輯的複雜性,同時控制其可訪問性。

典型應用:WCF服務代理。

¡  裝飾器(Decorator Pattern

模式起點:為原有系統,動態地增加或者刪除狀態和行為,在繼承被裝飾類的同時包含被裝飾類的例項成員。

典型應用:.NETStream的設計。

¡  門面(Façade Pattern

模式起點:將表現層和邏輯層隔離,封裝底層的複雜處理,為使用者提供簡單的介面,這樣的例子隨處可見。門面模式很多時候更是一種系統架構的設計,在很多專案中,都實現了門面模式的介面,為複雜系統的解耦提供了最好的解決方案。

典型應用:WSDL就是一個典型的平臺無關的門面應用。

¡  組合(Composite Pattern

模式起點:不管是個體還是元件,都包含公共的操作介面,透過同樣的方式來處理一個組合中的所有物件。元件的典型操作包括:增加、刪除、查詢、分組和獲取子元素等。

典型應用:樹形結構的資料組織。

¡  介面卡(Adapter Pattern

模式起點:在原型別不做任何改變的情況下,擴充套件了新的介面,靈活且多樣地適配一切舊俗。這種打破舊框框、適配新格局的思想,是物件導向的精髓。以繼承方式實現類的Adapter模式和以聚合方式實現物件的Adapter模式,各有千秋,各取所長。看來,把它叫做包裝器一點也不為過。

典型應用:RCWRuntime Callable Wrapper)在COM Interop中的應用。

模式本身還有很多的故事和細節,在《設計模式:可複用物件導向軟體的基礎》中總結了23種設計模式,其大致的分類如表3-2所示。

3-2  經典設計模式

   

   

建立型模式

工廠方法

 

抽象工廠

 

單例

 

建立者

 

原型模式

結構型模式

橋接

 

介面卡

 

組合

 

外觀

 

裝飾

 

享元

 

代理

行為型模式

模板方法

 

迭代器

 

中介者

 

職責鏈

 

直譯器

 

命令

 

觀察者

 

備忘錄

 

狀態模式

 

策略模式

 

訪問者

 

模式的起點

本文節選自《你必須知道的.NET(第2版)》一書

圖書詳細資訊:http://space.itpub.net/13164110/viewspace-704514

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-704753/,如需轉載,請註明出處,否則將追究法律責任。

相關文章