結構型模式描述如何將類或對象按某種布局組成更大的結構。它分為類結構型模式和對象結構型模式,前者采用繼承機制來組織接口和類,后者釆用組合或聚合來組合對象。
由于組合關系或聚合關系比繼承關系耦合度低,滿足“合成復用原則”,所以對象結構型模式比類結構型模式具有更大的靈活性。
結構型模式分為以下 7 種:
⒈代理(Proxy)模式:為某對象提供一種代理以控制對該對象的訪問。即客戶端通過代理間接地訪問該對象,從而限制、增強或修改該對象的一些特性。
⒉適配器(Adapter)模式:將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類能一起工作。
⒊橋接(Bridge)模式:將抽象與實現分離,使它們可以獨立變化。它是用組合關系代替繼承關系來實現的,從而降低了抽象和實現這兩個可變維度的耦合度。
⒋裝飾(Decorator)模式:動態地給對象增加一些職責,即增加其額外的功能。
⒌外觀(Facade)模式:為多個復雜的子系統提供一個一致的接口,使這些子系統更加容易被訪問。
⒍享元(Flyweight)模式:運用共享技術來有效地支持大量細粒度對象的復用。
⒎組合(Composite)模式:將對象組合成樹狀層次結構,使用戶對單個對象和組合對象具有一致的訪問性。
以上 7 種結構型模式,除了適配器模式分為類結構型模式和對象結構型模式兩種,其他的全部屬于對象結構型模式,下面我們會分別、詳細地介紹它們的特點、結構與應用。