php,java实现中介者模式
2017-03-25 15:47
399 查看
当多个对象之间产生网状的关系时,适合中介者模式,把多对多的依赖转化为只对中介者的依赖
类图
java实现
中介者抽象类
中介者实现类
具体逻辑抽象类
实现类1
php实现
类图
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();
相关文章推荐
- Java设计模式菜鸟系列(二十二)中介者模式建模与实现
- 【GOF23设计模式】_中介者模式_同事协作类_内部类实现JAVA245
- php,java实现备忘录模式
- 中介者模式(java实现)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 中介者模式(Mediator) - Java实现
- Java 实现中介者(Mediator)模式
- php,java实现装饰者模式
- php,java实现访问者模式
- php,java实现组合模式
- 《大话设计模式》java实现之中介者模式
- 设计模式之第19章-中介者模式(Java实现)
- php,java实现原型模式
- php、java实现单例模式
- php、java实现状态模式
- (Mediator)中介者模式的Java实现(加修改)
- 中介者模式和php实现
- php,java实现建造者模式
- php,java实现代理模式
- 设计模式-中介者模式(Java实现)
- php、java实现桥接模式