最近一直在總結設計模式,對於**模式、中介者模式、外觀模式三者甚是難辨。
**模式:為其他物件提供一種**以控制對這個物件的訪問。【結構型】
外觀模式:為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這乙個子系統更加容易使用。【行為型】
二者區別:
**的客戶物件無法直接訪問目標物件,**物件提供對單獨目標物件的訪問控制,而外觀模式的客戶物件可以直接訪問子系統中的各個物件,但通常由外觀物件提供對子系統個元件功能的簡化的共同層次的呼叫介面。
下面重點介紹一下中介者模式:
1.定義:
中介者模式:用乙個中介物件來封裝一系列的物件互動。中介者使各個物件不需要顯示地相互吸引,從而使其耦合鬆散,而且可以獨立地改變他們之間的互動。【行為型】
2.個人理解:
如圖所示:
說明:中介者模式設計兩個具體物件,乙個是使用者類,另乙個是中介者類,根據針對介面程式設計原則,則需要把這兩類角色進行抽象,所以中介者模式中就有了4類角色,它們分別是:抽象中介者角色,具體中介者角色、抽象同事類和具體同事類。中介者類是起到協調各個物件的作用,則抽象中介者角色中則需要儲存各個物件的引用。
3.深入了解中介者模式
優點:
mediator的出現減少了各個colleague的耦合,使得可以獨立的改變和復用各個colleague類和mediator。
通過這兩張圖可以清楚的看到物件間的低耦合。而且它提高了系統的靈活性,提高了**的復用性。
缺點:
中介者角色承擔了較多的責任,所以一旦這個中介者物件出現了問題,整個系統將會受到重大的影響。
應用:
中介者模式,定義了乙個中介物件來封裝系列物件之間的互動。中介者使各個物件不需要顯式地相互引用,從而使其耦合性降低,而且可以獨立地改變它們之間的互動。中介者模式一般應用於一組定義良好的物件之間需要進行通訊的場合以及想定製乙個分布在多個類中的行為,而又不想生成太多的子類的情形下。
4.總結:其實對於設計模式的分析可以首先從其所屬的不同類別進行劃分,然後明確其具體的特點。理解它所體現的物件導向的設計模式思想。對於具有相似性的知識點可以通過對比學習和分析,這樣會有更深的理解。
大話設計模式 中介者模式
description 抽象中介者類 代替某個物件去做某些事情 date 2019 5 21 10 52 public abstract class mediator classname concretemediator author leo description 具體的中介者類 date 201...
java 中介者模式(大話設計模式)
中介者模式一般應用於一組物件以定義良好但是複雜的方式進行通訊的場合,以及想定製乙個分布在多個類中的行為,而又不想生成太多的子類的場合。互相組合 抽象中介者類 author liu yuning public abstract class mediator class concretemediator...
《大話設計模式》java實現之中介者模式
中介者模式個人理解為中介者持有其他關聯物件的引用,把原先各物件之間的複雜關係集合在中介者中去 結構 宣告 public void declare string message 獲得訊息 public void getmessage string message public abstract cla...