怎么独立改变php设计模式 Mediator (中介者模式)的交互

来源:爱站网时间:2021-08-04编辑:网友分享
用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互,那要怎么独立改变php设计模式 Mediator (中介者模式)的交互呢?跟随爱站小编一起来看看吧!
复制代码 代码如下:

/**
* 中介者模式
*
* 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互
*/
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");

以上内容就是爱站技术频道小编为大家分享的关于独立改变php设计模式 Mediator (中介者模式)的交互的资料整理,跟着小编一起看完以上的分享,是不是对独立改变php设计模式 Mediator (中介者模式)的交互更加了解了呢。 

上一篇:什么是php设计模式的 Chain Of Responsibility (职责链模式)

下一篇:php设计模式的 Observer(观察者模式)是什么

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载