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

 更新时间:2011年06月26日 10:34:46   作者:  
用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互
复制代码 代码如下:

<?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");

相关文章

  • php计划任务之ignore_user_abort函数实现方法

    php计划任务之ignore_user_abort函数实现方法

    这篇文章主要介绍了php计划任务之ignore_user_abort函数实现方法,以实例形式分析了php计划任务的ignore_user_abort函数实现方法,并对ignore_user_abort函数的用法进行了较为详尽的分析说明,需要的朋友可以参考下
    2015-01-01
  • phpfpm的作用和用法

    phpfpm的作用和用法

    在本篇文章里小编给大家整理了关于phpfpm的作用和用法相关知识点,有需要的朋友们学习下。
    2019-10-10
  • PHP DB 数据库连接类定义与用法示例

    PHP DB 数据库连接类定义与用法示例

    这篇文章主要介绍了PHP DB 数据库连接类定义与用法,涉及php基于mysqli针对数据库的连接、增删改查等常见操作封装与使用技巧,需要的朋友可以参考下
    2019-03-03
  • PHP中使用foreach()遍历二维数组的简单实例

    PHP中使用foreach()遍历二维数组的简单实例

    下面小编就为大家带来一篇PHP中使用foreach()遍历二维数组的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • php检索或者复制远程文件的方法

    php检索或者复制远程文件的方法

    这篇文章主要介绍了php检索或者复制远程文件的方法,涉及php使用copy函数操作文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php 从数据库提取二进制图片的处理代码

    php 从数据库提取二进制图片的处理代码

    形式上类似UCH 只是存储方式不一样 本人比较愚钝 这个问题困惑了我半天 希望对有同样问题的phper有所帮助 高手们别见笑!
    2009-09-09
  • php实现概率性随机抽奖代码

    php实现概率性随机抽奖代码

    本文给大家分享的是使用php根据奖品的权重来实现概率性随机抽奖的代码,非常的使用,有类似需求的小伙伴,可以拿去参考下
    2016-01-01
  • 利用PHP实现短域名互转

    利用PHP实现短域名互转

    如何使用PHP实现短域名互转?下面的代码可以帮助你实现,非常简单,需要的朋友可以参考下
    2013-07-07
  • 深入PHP变量存储的详解

    深入PHP变量存储的详解

    本篇文章是对PHP变量的存储进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP获取MAC地址的函数代码

    PHP获取MAC地址的函数代码

    获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址
    2011-09-09

最新评论