分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

PHP设计模式 - 中介者模式

发布时间:2023-09-06 02:01责任编辑:胡小海关键词:PHP

中介者模式用于开发一个对象,这个对象能够在类似对象相互之间不直接相互的情况下传送或者调解对这些对象的集合的修改。 一般处理具有类似属性,需要保持同步的非耦合对象时,最佳的做法就是中介者模式。PHP中不是特别常用的设计模式。

<?phpabstract class Mediator { // 中介者角色 ???abstract public function send($message,$colleague); } abstract class Colleague { // 抽象对象 ???private $_mediator = null; ????public function __construct($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) { ???????//echo $colleague->notify($message); ???????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."<br>"; ???} } class Colleague2 extends Colleague { // 具体对象角色 ???public function notify($message) { ????????echo ‘colleague2:‘.$message."<br>"; ???} } // client$objMediator = new ConcreteMediator(); $objC1 = new Colleague1($objMediator); $objC2 = new Colleague2($objMediator); $objMediator->set($objC1,$objC2); $objC1->send("to c2 from c1"); //输出:colleague1:to c2 from c1$objC2->send("to c1 from c2"); //输出:colleague2:to c1 from c2

PHP设计模式 - 中介者模式

原文地址:https://www.cnblogs.com/taozi32/p/9226864.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved