创建具体同事类
public class ConcreteColleagueA extends Colleague {public ConcreteColleagueA(Mediator mediator) {super(mediator);this.mediator.setColleageA(this);}/*** 自有方法*/public void selfMethodA() {System.out.println( this.getClass().getSimpleName()+ "收到中介协作通知 , selfMethodA自有方法执行");}/*** 依赖方法*/public void depMethodA() {System.out.println( this.getClass().getSimpleName()+ " depMethodA通知中介者进行转发协作");// 中介者进行转发协作this.mediator.transferA();}}
public class ConcreteColleagueB extends Colleague {public ConcreteColleagueB(Mediator mediator) {super(mediator);this.mediator.setColleageB(this);}/*** 自有方法*/public void selfMethodB() {System.out.println(this.getClass().getSimpleName() + "收到中介协作通知 , selfMethodB自有方法执行");}/*** 依赖方法*/public void depMethodB() {System.out.println(this.getClass().getSimpleName() + " depMethodB通知中介者进行转发协作");// 中介者进行转发协作this.mediator.transferB();}}
客户端执行
public static void main(String[] args) {// 创建抽象中介者Mediator mediator = new ConcreteMediator();// 具体同事类ConcreteColleagueA colleagueA = new ConcreteColleagueA(mediator);ConcreteColleagueB colleagueB = new ConcreteColleagueB(mediator);// 中介者进行转发协作,A转发给BcolleagueA.depMethodA();System.out.println("-------------------------");// 中介者进行转发协作,B转发给AcolleagueB.depMethodB();}
ConcreteColleagueA depMethodA通知中介者进行转发协作ConcreteColleagueB收到中介协作通知 , selfMethodB自有方法执行-------------------------ConcreteColleagueB depMethodB通知中介者进行转发协作ConcreteColleagueA收到中介协作通知 , selfMethodA自有方法执行
- 成语老吾老以及人之老的解释、出处及用法
- 立足之地的解释立足之地的出处及用法
- 影视剧中令人闻之色变的寒食散究竟是什么?
- 自古帝王多好色:揭秘慈禧太后的获宠之路
- 未解之谜:项羽不肯过江东竟是怕丢面子
- 李世民德妃是怎么死的他们之间是否有爱情
- 诸葛亮的一生之敌:三国中诸葛亮一生最恨之人是谁
- 乾隆与他的大臣,以及大臣与大臣之间关系如何
- 努尔哈赤是怎么死的?努尔哈赤死亡之谜大揭秘
- 简图记录-《乌合之众》阅读总结