PHPデザインパターン Mediator(メディエーターパターン)
Jun 13, 2016 pm 12:08 PM
复制代 代码如下:
<?php
/**
* メディエーター パターン
*
* 仲介オブジェクトを使用して一連のオブジェクトの相互作用をカプセル化することで、各オブジェクトが明示的に相互に参照する必要がなくなり、結合が緩和され、独立して変更できるようになります。
間の相互作用*/
抽象クラス Mediator
{
抽象パブリック関数 send($message,$colleague);
}
抽象クラス Colleague
{
private $_mediator = null;
パブリック関数 Colleague($mediator)
{
$this->mediator = $mediator;
}
パブリック関数 send($message)
{
$this->_mediator->send($message,$this);
}
抽象パブリック関数notify($message);
}
class ConcreteMediator extends Mediator
{
private $_colleague1 = null;
プライベート $_colleague2 = null;
パブリック関数 send($message,$colleague)
{
if($colleague == $this->_colleague1)
{
$this->$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 Notice($message)
{
echo "Colleague1 Message is :".$message."< br/>";
}
}
class Colleague2 extends Colleague
{
public function Notice($message)
{
echo "Colleague2 Message is :".$message."< br/>";
}
}
//
$objMediator = new ConcreteMediator();
$objC1 = 新しい同僚 1($objMediator);
$objC2 = 新しい同僚 2($objMediator);
$objMediator->set($objC1,$objC2);
$objC1->send("c1 から c2 へ");
$objC2->send("c2 から c1 へ");

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
