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