參考:
中介者模式用於開發乙個物件,這個物件能夠在類似物件相互之間不直接相互的情況下傳送或者調解對這些物件的集合的修改。一般處理具有類似屬性,需要保持同步的非耦合物件時,最佳的做法就是中介者模式。php中不是特別常用的設計模式。
1、中國加入 wto 之前是各個國家相互**,結構複雜,現在是各個國家通過 wto 來互相**。
2、機場排程系統。
3、mvc 框架,其中c(控制器)就是 m(模型)和 v(檢視)的中介者。
1、降低了類的複雜度,將一對多轉化成了一對一。
2、各個類之間的解耦。
3、符合迪公尺特原則。
中介者會龐大,變得複雜難以維護。
1、中介者介面(unitednations):在裡面定義了各個同事之間相互互動所需要的方法。
2、具體的中介者實現物件(unitedcommit):它需要了解並為維護每個同事物件,並負責具體的協調各個同事物件的互動關係。
3、同事類的定義(country):通常實現成為抽象類,主要負責約束同事物件的型別,並實現一些具體同事類之間的公共功能,
4、具體的同事類(china):實現自己的業務,需要與其他同事物件互動時,就通知中介物件,中介物件會負責後續的互動。
<?php//中介者介面:可以是公共的方法,如change方法,也可以是小範圍的互動方法。
//同事類定義:比如,每個具體同事類都應該知道中介者物件,也就是每個同事物件都會持有中介者物件的引用,這個功能可定義在這個類中。
//抽象國家
abstract class country
}//具體國家類
//美國
class usa extends country
//宣告
public function declared($message)
//獲得訊息
public function getmessage($message)
}//中國
class china extends country
//宣告
public function declared($message)
//獲得訊息
public function getmessage($message)
}//抽象中介者
//抽象聯合國機構
abstract class unitednations
//聯合國機構
class unitedcommit extends unitednations
else
}}//測試**塊
$unsc = new unitedcommit();
$c1 = new usa($unsc);
$c2 = new china($unsc);
$unsc->countrychina = $c2;
$unsc->countryusa = $c1;
$c1->declared("姚明的籃球打的就是好");
$c2->declared("謝謝。");
PHP設計模式 中介者模式
中介者模式用於開發乙個物件,這個物件能夠在類似物件相互之間不直接相互的情況下傳送或者調解對這些物件的集合的修改。一般處理具有類似屬性,需要保持同步的非耦合物件時,最佳的做法就是中介者模式。php中不是特別常用的設計模式。abstract class mediator abstract class c...
PHP設計模式之中介者模式
上回說道,我們在外打工的經常會和一類人有很深的接觸,那就是房產中介。大學畢業後馬上就能在喜歡的城市買到房子的x二代不在我們的考慮範圍內哈。既然需要長期的租房,那麼因為工作或者生活的變動,不可避免的一兩年或者三五年就要和房產中介打一次交道。有的時候,我們租房並不一定會知道房主的資訊,房主也不用知道我們...
php設計模式 Mediator 中介者模式
複製 如下 php 中介者模式 用乙個中介物件來封裝一系列的物件互動,使各物件不需要顯式地相互引用從而使其耦合鬆散,而且可以獨立地改變它們之間的互動 abstract class mediator abstract class colleague public function send messa...