行为型模式之中介者模式

中介者模式

中介者模式
/**
 * 中介者模式
 * 用一个中介对象(同事)封装一系列对象的交互。中介者使各个对象不需要显示的互相作用
 * 从而使其耦合松散,而且可以独立地改变他们之间的交互。
 *
 * 优点:
 *  1.减少类间的依赖,将原有的1对多的依赖变为1对1.
 *  2.避免同事之间过多耦合,同事只依赖与中介者
 *  3.
 *  4.
 *
 * 

* 涉及四个角色: * 1.抽象中介者 * 2.具体中介者 * 3.抽象同事 * 4.具体同事 */ public class MediatorPattern { //抽象中介者 abstract class Mediator { //中介者模式的业务逻辑方法 abstract void colleagueChanged(Colleague c); } //具体中介者 class ConcreteMediator extends Mediator { @Getter private ConcreteColleague1 c1; @Getter private ConcreteColleague2 c2; @Override void colleagueChanged(Colleague c) { this.c1.action(); this.c2.action(); } //工厂方方法创建同事对象 public void createConcreteMediator() { c1 = new ConcreteColleague1(this); c2 = new ConcreteColleague2(this); } } //抽象同事 @Data abstract class Colleague { private Mediator mediator; public Colleague(Mediator mediator) { this.mediator = mediator; } //抽象行动由子类实现 public abstract void action(); //业务方法,调用此方法改变内部状态 public void change() { this.mediator.colleagueChanged(this); } } //具体同事1 class ConcreteColleague1 extends Colleague { public ConcreteColleague1(Mediator mediator) { super(mediator); } @Override public void action() { System.out.println("同事1的行动方法"); } } //具体同事2 class ConcreteColleague2 extends Colleague{ public ConcreteColleague2(Mediator mediator) { super(mediator); } @Override public void action() { System.out.println("同事2的行动方法"); } } }

你可能感兴趣的:(行为型模式之中介者模式)