php,java实现中介者模式
来源:互联网 发布:avmo.pw cn新域名 编辑:程序博客网 时间:2024/06/07 09:40
当多个对象之间产生网状的关系时,适合中介者模式,把多对多的依赖转化为只对中介者的依赖
类图
java实现
中介者抽象类
public abstract class AbsMediation { private Colleague1 colleague1; private Colleague2 colleague2; public void setColleague1(Colleague1 colleague1){ this.colleague1 = colleague1; } public void setColleague2(Colleague2 colleague2){ this.colleague2 = colleague2; } public Colleague1 getColleague1(){ return colleague1; } public Colleague2 getColleague2(){ return colleague2; } public abstract void doSomething1(); public abstract void doSomething2();}
中介者实现类
public class Mediation extends AbsMediation { @Override public void doSomething1() { this.getColleague1().selfmethod1(); this.getColleague2().selfMethod2(); } @Override public void doSomething2() { this.getColleague1().selfmethod1(); this.getColleague2().selfMethod2(); }}
具体逻辑抽象类
public class AbsColleague { protected AbsMediation absMediation; public AbsColleague(AbsMediation absMediation){ this.absMediation = absMediation; }}
实现类1
public class Colleague1 extends AbsColleague { public Colleague1(AbsMediation absMediation) { super(absMediation); } public void selfmethod1(){ } public void publishMethod1(){ }}
public class Colleague2 extends AbsColleague { public Colleague2(AbsMediation absMediation) { super(absMediation); } public void selfMethod2(){ } public void publishMethod2(){ }}
php实现
abstract class AbsColleague{ protected $mediation; public function __construct(AbsMediation $mediation) { $this->mediation = $mediation; }}class Collegue1 extends AbsColleague{ public function __construct(AbsMediation $mediation) { parent::__construct($mediation); } public function selfFunction1() { echo 'selfFunction1'; } public function publishFunction1() { echo 'publishFunction1'; }}class Collegue2 extends AbsColleague{ public function __construct(AbsMediation $mediation) { parent::__construct($mediation); } public function selfFunction2() { echo 'selfFunction2'; } public function publishFunction2() { echo 'publishFunction2'; }}abstract class AbsMediation{ protected $collegue1; protected $collegue2; public function setCollegue1(Collegue1 $collegue1) { $this->collegue1 = $collegue1; } public function setCollegue2(Collegue2 $collegue2) { $this->collegue2 = $collegue2; } public function getCollegue1() { return $this->collegue1; } public function getCollegue2() { return $this->collegue2; } public abstract function doSomething1(); public abstract function doSomething2();}class Mediation extends AbsMediation{ public function doSomething1() { $this->collegue1->selfFunction1(); $this->collegue2->selfFunction2(); } public function doSomething2() { $this->collegue1->selfFunction1(); $this->collegue2->selfFunction2(); }}$mediation = new Mediation;$collegue1 = new Collegue1($mediation);$collegue2 = new Collegue2($mediation);$mediation->setCollegue1($collegue1);$mediation->setCollegue2($collegue2);$mediation->doSomething1();
0 0
- php,java实现中介者模式
- 中介者模式(java实现)
- PHP-中介者模式
- PHP 中介者模式
- Java 实现中介者(Mediator)模式
- java 中介者模式
- java中介者模式
- java 中介者模式
- java 中介者模式
- Java中介者模式
- 设计模式-中介者模式(Java实现)
- 《大话设计模式》java实现之中介者模式
- C++实现中介者模式
- 中介者模式 C++ 实现
- 中介者模式lua实现
- 中介者模式----C++实现
- 中介者模式-C++实现
- js实现中介者模式
- Java基础功能实例——IO流基础实例
- jsp的servlet乱码问题
- python实现排序算法一:快速排序
- ORACLE 中ROWNUM用法总结! (转)
- yum升级CURL到最新版本的方法,非常好用
- php,java实现中介者模式
- simuvex 符号分析形象解释
- ubuntu彻底卸载搜狗拼音输入法
- ubuntu 16.04 镜像下载
- 2017.03.25【NOIP 普及组】模拟赛C组 数数(count) 题解
- Android 环境的配置 以及 模拟器的使用
- 使用ffmpeg编码时,如何设置恒定码率,并控制好关键帧I帧间隔
- ndroid中BitmapFactory.Options详解
- POJ