php中介模式,中介者模式(Mediator pattern)详解及PHP实现
中介者模式是一种行为型模式,它包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用,从而使它们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用,保证这些作用可以彼此独立的变化。
主要角色
中介者(Mediator)角色:定义了对象间相互作用的接口
具体中介者(ConcreteMediator)角色:实现了中介者定义的接口。
具体对象(ConcreteColleague)角色:通过中介者和别的对象进行交互
实例
abstract class Mediator { // 中介者角色
abstract public function send($message,$colleague);
}
abstract class Colleague { // 抽象对象
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 { // 具体对象角色
public function notify($message) { }
}
class Colleague2 extends Colleague { // 具体对象角色
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");
?>
php中介模式,中介者模式(Mediator pattern)详解及PHP实现相关推荐
- 设计模式 - 抽象工厂模式(abstract factory pattern) 详解
抽象工厂模式(abstract factory pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/270916 ...
- 工程之星android版使用,安卓版工程之星软件网络1+1模式及网络cors连接操作详解...
原标题:安卓版工程之星软件网络1+1模式及网络cors连接操作详解 现在,越来越多用户开始使用安卓版工程之星进行作业,科力达技术工程师总结了安卓版工程之星网络1+1模式及网络CORS连接方式操作步骤, ...
- java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...
1.导入jar包: org.springframework.boot spring-boot-starter-activemq org.apache.activemq activemq-pool 2. ...
- 命令行模式下几个网络命令详解
命令行模式下几个网络命令详解 上一篇 / 下一篇 2007-05-16 16:20:55 查看( 166 ) / 评论( 0 ) / 评分( 0 / 0 ) 命令行模式下几个网络命令详解 一.pin ...
- Java设计模式之中介者模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- Java设计模式之模板方法模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- java设计模式之建造者模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- java observer模式_Java观察者模式(Observer)详解及应用
Java观察者模式(Observer)详解及应用 (2011-12-15 14:03:30) 标签: 杂谈 Java观察者模式(Observer)详解及应用 由于网站带有弱sns功能,因此需要设计关注 ...
- java设计模式之工厂模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
最新文章
- 阿里,腾讯,拼多多面试必挂:面对千万级、亿级流量怎么处理?
- Oracle RMAN CATALOG数据库的配置
- Android 快捷方式的创建与查询 快捷方式问题大全 获取快捷方式在Launcher数据库中的信息 Failed to find provider info for com.android.la
- python基础入门视频-Python基础入门视频课程——笔记
- [密码学基础][每个信息安全博士生应该知道的52件事]52.先进的应用概念 系统的大致安全需求
- 实战 | 手把手教你设计优惠券前后台
- 驱动备份工具哪个好_互联网推广工具哪个好
- 中职计算机基础课教学策略研究,中职计算机基础知识教学方法及教学策略研究.doc...
- 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)
- MQTT 固定报头 中 剩余长度字段的计算
- 解开发者之痛:中国移动MySQL数据库优化最佳实践
- vivado中FIFO IP核的Standard FIFO和First-word-Fall-Through模式的仿真比较
- mysql课设体会_课程设计心得体会8篇
- Ckplayer视频播放器使用方法介绍
- 不用重启电脑,就可以刷新系统变量
- 解决联想拯救者打开AMD Radeon Software弹出“The version of AMD Radeon Software ......”框问题
- pyinstaler打包paddle
- C++游戏界面不流畅的问题
- 【杭电-oj】-1234-开门人关门人-(-结构体-经典例题)
- IT人的福音:一次腰椎间盘突出引起疼痛的过程记录