標籤:設計模式 橋接模式 類 對象
我們知道,設計模式分別是六個原則和三大模式,分別可以分為建立型模式、結構型模式、行為型模式,其中結構型模式包括:適配器模式、裝飾模式、橋接模式、組合模式、享元模式、代理模式、面板模式。在這裡,我們就說一下結構型模式。
適配器模式(Adapter):
定義:將一個類的介面轉換成客戶喜歡的另外一個介面,Adapter模式使得原本由於介面不相容而不能一起工作的那些類一起工作。
圖:
理解:
為了更好的提高複用性,但是介面和複用的環境是不一樣的,所以需要加入適配器模式,讓這個介面可以複用。
橋接模式(Bridge):
定義:將抽象部分與他的實現部分分離,讓他們都可以獨立的發生變化,實現指的是抽象類別和他的衍生類別用來實現自己的對象。
圖:
理解:
上面的這個例子很容易懂,主要是運用合成/複用的原則,優先使用對象的合成和彙總可以更好的保持每一個類被封裝,大大的減少面對新需要而出現大的改動。
組合模式(Composite):
定義:將對象組合成樹形結構以表示“部分-整體”,得層次關係,組合模式使得使用者對單個對象和組合對象的使用具有一致性。
圖:
理解:
需求中體現部分和整體的層次關係,當你喜歡使用者可以忽略對象與單個對象的不同,可以統一使用組合結構中所有對象的時候,就可以用組合模式啦,組合模式可以讓使用者一致地使用組合結構和單個對象。
享元模式(Flyweight):
定義:
運用共用技術有效支援大量細類度的對象,來提供應用程式的效能,節約系統中重複建立對象執行個體的效能消耗。當我們系統中的某個物件類型的執行個體較多的情況,並且要求這些執行個體進行分類後,發現真正有區別的分類很少的情況。例如我們在使用拼音IME的時候,如果說我們每一字都是new一個對象的執行個體的操作的話,那麼記憶體中的執行個體就太大啦,這個時候我們就可以考慮將這些重複的對象來自建立一次,這時候我們就可以考慮享元模式啦。
圖:
理解:
享元模式可以大量的避免非常相似類的開銷,可以有效減少需要執行個體化的數量。如果能把那些參數移到類執行個體外面,在方法調用時將他們傳遞進來。
面板模式(Facade):
定義:為子系統中的一組介面提供一個一致的介面,此模式定義了一個高層介面,這個介面使得這一個系統更加容易使用。
圖:
理解:
提供一個簡單的介面,減少他們的依賴。
總之,我覺得自己對大話模式理解的很淺,很淺。。。。。
設計模式之結構型模式