中介者模式git
public abstract class AbstractMediator { private ColleagueA colleagueA; private ColleagueB colleagueB; public abstract void executeToA(); public abstract void executeToB(); public void setColleagueA(ColleagueA colleagueA) { this.colleagueA = colleagueA; } public void setColleagueB(ColleagueB colleagueB) { this.colleagueB = colleagueB; } }
public class Mediator extends AbstractMediator { public void executeToA() { System.out.println("Mediator executeToA ..."); } public void executeToB() { System.out.println("Mediator executeToB ..."); } }
public class ColleagueA { private AbstractMediator mediator; public ColleagueA(AbstractMediator mediator){ this.mediator = mediator; } public void print(){ System.out.println("ColleagueA print ... "); mediator.executeToB(); } } public class ColleagueB { private AbstractMediator mediator; public ColleagueB(AbstractMediator mediator){ this.mediator = mediator; } public void print(){ System.out.println("ColleagueB print ..."); mediator.executeToA(); } }
public static void main(String[] args) { AbstractMediator mediator = new Mediator(); ColleagueA colleagueA = new ColleagueA(mediator); ColleagueB colleagueB = new ColleagueB(mediator); mediator.setColleagueA(colleagueA); mediator.setColleagueB(colleagueB); colleagueA.print(); colleagueB.print(); }
ColleagueA print ... Mediator executeToB ... ColleagueB print ... Mediator executeToA ...
https://github.com/Seasons20/DisignPattern.git
ENDgithub