服务器之家

服务器之家 > 正文

php设计模式 Mediator (中介者模式)

时间:2019-12-01 12:37     来源/作者: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."<br/>"; 


class Colleague2 extends Colleague 

public function notify($message) 

echo "Colleague2 Message is :".$message."<br/>"; 


// 
$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"); 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部