如何改变PHP中介者模式的交互?
发布时间:2023-05-05 13:50:59 所属栏目:PHP教程 来源:
导读:关于“怎么改变PHP中介者模式的交互?”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往
关于“怎么改变PHP中介者模式的交互?”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。 代码如下: /** * 中介者模式 * * 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 */ abstract class Mediator { abstract public function send($message,$colleague); } abstract class Colleague { private $_mediator = null; public function Colleague($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 { public function notify($message) { echo "Colleague1 Message is :".$message." "; } } class Colleague2 extends Colleague { public function notify($message) { echo "Colleague2 Message is :".$message." "; } } // $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"); (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐