首页 » 网站推广 » php的中介模式技巧_PHP设计模式之中介者模式

php的中介模式技巧_PHP设计模式之中介者模式

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

概述:使各工具不须要显式地相互引用从而使其耦合疏松, 用一个中介工具来封装一系列的工具交互, 而且可以独立地改变它们之间的交互

利用中介者模式的场合和优缺陷

php的中介模式技巧_PHP设计模式之中介者模式

利用闭幕者模式的场合

php的中介模式技巧_PHP设计模式之中介者模式
(图片来自网络侵删)

1.一组定义良好的工具,现在要进行繁芜的通信。

2.定制一个分布在多个类中的行为,而又不想天生太多的子类。

可以看出,中介工具紧张是用来封装行为的,行为的参与者便是那些工具,但是通过中介者,这些工具不用相互知道。
呵呵~~~

利用中介者模式的优点:

1.降落了系统工具之间的耦合性,使得工具易于独立的被复用。

2.提高系统的灵巧性,使得系统易于扩展和掩护。

利用中介者模式的缺陷:

中介者模式的缺陷是显而易见的,由于这个“中介“承担了较多的任务,以是一旦这个中介工具涌现了问题,那么全体系统就会受到重大的影响。

<?php

/

中介者模式

中介者抽象基类

/

abstract class Mediator{

public function send($message, $colleague){

}

}

<?php

/

同事基类

用于同事之间发送信息

/

abstract class Colleague{

public $mediator;

public function Colleague($mediator){

$this->mediator = $mediator;

}

public function send($message){

$this->mediator->send($message,$this);

}

public function notify($message){}

}

<?php

/

详细中介者

/

class ConcreteMediator extends Mediator{

private $colleagueA;

private $colleagueB;

public function send($message, $colleague){

if($colleague == $this->colleagueA){

$this->colleagueA->notify($message);

}else{

$this->colleagueB->notify($message);

}

}

public function set($colleagueA, $colleagueB){

$this->colleagueA = $colleagueA;

$this->colleagueB = $colleagueB;

}

}

<?php

/

详细同事类

/

class ColleagueA extends Colleague

{

/

public function __construct($mediator){

parent:: __construct($mediator);

}

/

public function notify($message)

{

echo \"大众ColleagueA Message is :\公众.$message.\"大众<br/>\"大众;

}

}

<?php

/

详细同事类

/

class ColleagueB extends Colleague

{

public function notify($message)

{

echo \"大众ColleagueB Message is :\"大众.$message.\"大众<br/>\"大众;

}

}

<?php

/

中介者模式

/

public function actionMediator(){

Yii::import('ext.mediator.');

$objMediator = new ConcreteMediator();

$objCA = new ColleagueA($objMediator);

$objCB = new ColleagueB($objMediator);

$objMediator->set($objCA,$objCB);

$objCA->send(\"大众去用饭\"大众);

$objCB->send(\公众不去\"大众);

$objCA->send(\"大众那回家\"大众);

$objCB->send(\公众不回\"大众);

}

相关文章

大数据时代,男性如何乘风破浪

随着科技的飞速发展,大数据已成为各行各业的重要资源。在这个数据为王的时代,男性如何乘风破浪,成为大数据时代的佼佼者呢?本文将从以下...

网站推广 2024-12-15 阅读0 评论0

大数据时代,蒋龙如何引领科技创新潮流

随着科技的飞速发展,大数据已经成为我国社会经济发展的重要驱动力。在众多大数据领域的领军人物中,蒋龙以其卓越的智慧和创新精神,成为了...

网站推广 2024-12-15 阅读0 评论0