php設(shè)計(jì)模式 Mediator (中介者模式)
更新時(shí)間:2011年06月26日 10:34:46 作者:
用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互,使各對(duì)象不需要顯式地相互引用從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互
復(fù)制代碼 代碼如下:
<?php
/**
* 中介者模式
*
* 用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互,使各對(duì)象不需要顯式地相互引用從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互
*/
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");
相關(guān)文章
php計(jì)劃任務(wù)之ignore_user_abort函數(shù)實(shí)現(xiàn)方法
這篇文章主要介紹了php計(jì)劃任務(wù)之ignore_user_abort函數(shù)實(shí)現(xiàn)方法,以實(shí)例形式分析了php計(jì)劃任務(wù)的ignore_user_abort函數(shù)實(shí)現(xiàn)方法,并對(duì)ignore_user_abort函數(shù)的用法進(jìn)行了較為詳盡的分析說(shuō)明,需要的朋友可以參考下2015-01-01
PHP DB 數(shù)據(jù)庫(kù)連接類(lèi)定義與用法示例
這篇文章主要介紹了PHP DB 數(shù)據(jù)庫(kù)連接類(lèi)定義與用法,涉及php基于mysqli針對(duì)數(shù)據(jù)庫(kù)的連接、增刪改查等常見(jiàn)操作封裝與使用技巧,需要的朋友可以參考下2019-03-03
PHP中使用foreach()遍歷二維數(shù)組的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇PHP中使用foreach()遍歷二維數(shù)組的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
php 從數(shù)據(jù)庫(kù)提取二進(jìn)制圖片的處理代碼
形式上類(lèi)似UCH 只是存儲(chǔ)方式不一樣 本人比較愚鈍 這個(gè)問(wèn)題困惑了我半天 希望對(duì)有同樣問(wèn)題的phper有所幫助 高手們別見(jiàn)笑!2009-09-09
php實(shí)現(xiàn)概率性隨機(jī)抽獎(jiǎng)代碼
本文給大家分享的是使用php根據(jù)獎(jiǎng)品的權(quán)重來(lái)實(shí)現(xiàn)概率性隨機(jī)抽獎(jiǎng)的代碼,非常的使用,有類(lèi)似需求的小伙伴,可以拿去參考下2016-01-01
利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)
如何使用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)?下面的代碼可以幫助你實(shí)現(xiàn),非常簡(jiǎn)單,需要的朋友可以參考下2013-07-07

