php设计模式 Mediator (中介者模式)
2015-01-24信息快讯网
用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互
<?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");
zend framework配置操作数据库实例分析
windows下zendframework项目环境搭建(通过命令行配置)
PHP C EasyUI DataGrid 资料存的方式介绍
PHP C EasyUI DataGrid 资料取的方式介绍
PHP类与对象中的private访问控制的疑问
php类中private属性继承问题分析
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
PHP中数字检测is_numeric与ctype_digit的区别介绍
Zend的AutoLoad机制介绍
说说PHP的autoLoad自动加载机制
如何获知PHP程序占用多少内存(memory_get_usage)
PHP管理内存函数 memory_get_usage()使用介绍
PHP的autoload机制的实现解析
关于UEditor编辑器远程图片上传失败的解决办法
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
php设计模式 FlyWeight (享元模式)
php设计模式 Prototype (原型模式)代码
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
php的memcached客户端memcached
PHP模块 Memcached功能多于Memcache
php模块memcache和memcached区别分析
批量获取memcache值并按key的顺序返回的实现代码
php中使用Akismet防止垃圾评论的代码
php在页面中调用fckeditor编辑器的方法
rephactor 优秀的PHP的重构工具
php错误提示failed to open stream: HTTP request failed!的完美解决方法
PHP中Date()时间日期函数的使用方法小结
写php分页时出现的Fatal error的解决方法
The specified CGI application misbehaved by not returning a complete set of HTTP headers
PHP stream_context_create()作用和用法分析
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
沪房产中介又迎来春天 有的员工月入二三十万