加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何改变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");
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!