一:適用情況
場景中存在多個角色並且其中多個角色互相存在直接關聯,從而導致過多的強耦合和過複雜的關係網路。此時新增乙個中介者角色,
其他都角色只會和中介者發生直接關聯,每個角色都通過中介者間接與其他角色進行溝通,從而化解了之前的強耦合。
這裡的中介者如同我們辦公室裡的交換機、路由器, 我們用的電腦就是各個角色,彼此沒有發生直接聯絡而是通過交換機和路由器來間接互動。
如果沒有中介者的話,可能的情況是這樣:
二:定義
用乙個中介物件封裝一系列的物件互動,中介者使各物件不需要顯示地相互作用,從而使耦合鬆散,而且可以獨立地改變它們之間的互動。
總的得來說,新增乙個中介者將互動攬在身上。
三:涉及的主要角色
1.抽象中介者角色。
2.具體中介者角色。
3.同事角色。
四:優缺點
1.優點很明顯,減少類之間的依賴,把原來的一對多的依賴轉為一對一的依賴, 也降低了類之間的耦合。
2.缺點也很明顯, 可以預見得到中介類會變的很臃腫。
Mediator 中介者 模式
問題 在物件導向系統的設計和開發過程中,物件之間的互動和通訊是最為常見的情況,因為物件間的互動本身就是一種通訊。在系統比較小的時候,可能物件間的通訊不是很多 物件也比較少,我們可以直接硬編碼到各個物件的方法中。但是當系統規模變大,物件的量變引起系統複雜度的急劇增加,物件間的通訊也變得越來越複雜,這時...
設計模式 中介者模式Mediator
前言 模式總覽 by xingoo 使用乙個中介的物件,封裝一組物件之間的互動,這樣這些物件就可以不用彼此耦合。這個中介者常常起著中間橋梁的作用,使其他的物件可以利用中介者完成某些行為活動,因此它必須對所有的參與活動的物件瞭如指掌!1 當一組物件要進行溝通或者業務上的互動,但是其關係卻又很複雜混亂時...
行為模式之Mediator 中介者
mediator定義 用乙個中介物件來封裝 一系列關於物件互動行為.為何使用mediator?各個物件之間的互動操作非常多 每個物件的行為操作都依賴彼此對方,修改乙個物件的行 為,同時會涉及到修改很多其他物件的行為,如果使用mediator模式,可以使各個物件間的耦合鬆散,只需關心和 mediato...