設計模式之結構型

2022-03-24 11:23:24 字數 1205 閱讀 8087

接下來進行的比賽就是死亡之組——結構型模式,到底誰能夠晉級呢?這個我們現在還無法**,那就趕緊看這場精彩的比賽吧!

首先有乙個疑問,為什麼分為結構型呢?她們都從程式的結構上降低了模組之間的耦合。

接下來一一介紹各位美麗的小姐:

【設配器小姐】為別人的溝通提供方便,當乙個完全不懂英語的人需要和美國人交流時,我們就需要有翻譯最為中間媒介,來達到雙方的交流,而翻譯員所起到的作用就是介面卡模式的作用。adapter就是將乙個類的介面轉換成客戶希望的另乙個介面。既然她有這個功能,那麼我們應該什麼時候用呢?當兩個類都不太容易修改的時候考慮使用介面卡模式適配,這也是一種無奈之舉。

【橋接小姐】將抽象和具體的實現分離開,而具體的比如手機的例子,將手機品牌和手機軟體分開,手機品牌這個抽象物件擁有部分實現介面的物件,和手機軟體進行橋接,這就橋接上了。橋接模式,我們可以擴充手機軟體和和手機品牌,增加了變化。

【組合小姐】描述部分-整體的關係,比如我們有總公司,在下面有上海分公司、深圳分公司等,這就是一種組合關係。這些基本物件還可以組合成更複雜的組合關係,而作為使用者不用關心是在總公司還是分公司,只要一致對待就好。

【裝飾小姐】可以動態新增一些額外的職責,裝飾小姐讓我們的子類更加靈活,可以新增一些類來裝飾我們的程式,使程式更加靈活。

【外觀小姐】為子系統建立乙個統一的介面,就像有些人去投資,但又不了解投資的風險和收益,這怎辦呢?**就為想投資的人提供乙個介面,大家只要投資**就可以了,而不需要具體去了解**、國債和房地產等的具體風險。外觀就是給大家乙個平台,直接在平台上操作,而不需要了解內部複雜的過程。

【享元小姐】提供乙個共享的超類或介面,通過這個介面可以了解世界。就像我們了解微生物一樣,剛開始無法看見微生物,就無法知道一些食物腐敗、疾病的機理,自從發現了顯微鏡之後,我們就可以通過顯微鏡來觀察微生物也就能夠知道現實世界中現象的機理。

【**小姐】不需要自己做事,讓**去做就好。我們現實世界中的律師就是一種**,不要當事人直接進行交涉,而通過律師(**)來處理事務。

總結:這幾個模式都是從結構上來改變程式,但目的一致都是為了降低耦合度。同時都有自己的特點,對於組合小姐的關係我還是理解的不太清楚,雖然知道這樣可以實現,但具體應用還是有很大的困難,還需要深入研究。

設計模式之結構型模式

結構型設計模式主要考慮的是 如何組合類和物件以獲得更大的結構。結構型模式分為兩種 結構型物件模式和結構型類模式 結構型類行為模式 採用繼承機制來組合介面或實現。乙個簡單的例子是採用多重繼承方法將兩個以上的類組合成乙個類,結果這個類包含了所有父類的性質。eg adapter模式 結構型物件行為模式 描...

結構型設計模式之裝飾模式

定義 動態地給乙個物件增加一些額外的職責,就增加物件功能來說,裝飾模式比生成子類更靈活 實現 1 抽象構建類 public inte ce transform 2 具體構建類 public final class car implememts transform public void move 3...

設計模式 結構型之組合模式

為了將具有樹形結構的特殊邏輯和通常邏輯解耦,將特殊邏輯抽離,並和通常邏輯受統一的介面約束,這樣的類結構叫組合模式 組合模式由三部分組成 統一介面 public inte ce compoisite 葉子結點 public class leaf implements compoisite overri...