php中介模式,中介者模式(Mediator pattern)详解及PHP实现
中介者模式是一種行為型模式,它包裝了一系列對(duì)象相互作用的方式,使得這些對(duì)象不必相互明顯作用,從而使它們可以松散偶合。當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用,保證這些作用可以彼此獨(dú)立的變化。
主要角色
中介者(Mediator)角色:定義了對(duì)象間相互作用的接口
具體中介者(ConcreteMediator)角色:實(shí)現(xiàn)了中介者定義的接口。
具體對(duì)象(ConcreteColleague)角色:通過(guò)中介者和別的對(duì)象進(jìn)行交互
實(shí)例
abstract class Mediator { // 中介者角色
abstract public function send($message,$colleague);
}
abstract class Colleague { // 抽象對(duì)象
private $_mediator = null;
public function __construct($mediator) {
$this->_mediator = $mediator;
}
public function send($message) {
$this->_mediator->send($message,$this);
}
abstract public function notify($message);
}
class ConcreteMediator extends Mediator { // 具體中介者角色
private $_colleague1 = null;
private $_colleague2 = null;
public function send($message,$colleague) {
if($colleague == $this->_colleague1) {
$this->_colleague1->notify($message);
} else {
$this->_colleague2->notify($message);
}
}
public function set($colleague1,$colleague2) {
$this->_colleague1 = $colleague1;
$this->_colleague2 = $colleague2;
}
}
class Colleague1 extends Colleague { // 具體對(duì)象角色
public function notify($message) { }
}
class Colleague2 extends Colleague { // 具體對(duì)象角色
public function notify($message) { }
}
// client
$objMediator = new ConcreteMediator();
$objC1 = new Colleague1($objMediator);
$objC2 = new Colleague2($objMediator);
$objMediator->set($objC1,$objC2);
$objC1->send("to c2 from c1");
$objC2->send("to c1 from c2");
?>
總結(jié)
以上是生活随笔為你收集整理的php中介模式,中介者模式(Mediator pattern)详解及PHP实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: “桂露光参差”下一句是什么
- 下一篇: php基础 简书,php基础