當對象之間的交互操作很多且每個對象的行為操作都彼此依賴時,為防止在修改一個對象的行為時,同時涉及修改很多其他對象的行為,可采用中介者模式,來解決緊耦合問題。該模式將對象之間的多對多關系變成一對多關系,中介者對象將系統從網狀結構變成以調停者為中心的星形結構,達到降低系統的復雜性,提高可擴展的作用。
public abstract class Colleague { Mediator mediator; public Colleague(Mediator mediator) { this.mediator = mediator; } public abstract void action();}public class ConcreteColleagueA extends Colleague { public ConcreteColleagueA(Mediator mediator) { super(mediator); } @Override public void action() { System.out.PRintln("ColleagueA do action!"); } public void doPrivateA() { System.out.println("ColleagueA do private!"); }}public class ConcreteColleagueB extends Colleague { public ConcreteColleagueB(Mediator mediator) { super(mediator); } @Override public void action() { System.out.println("ColleagueB do action!"); } public void doPrivateB() { System.out.println("ColleagueB do private!"); }}public abstract class Mediator { protected ConcreteColleagueA concreteColleagueA; protected ConcreteColleagueB concreteColleagueB; public abstract void method(); public void setConcreteColleagueA(ConcreteColleagueA concreteColleagueA) { this.concreteColleagueA = concreteColleagueA; } public void setConcreteColleagueB(ConcreteColleagueB concreteColleagueB) { this.concreteColleagueB = concreteColleagueB; }}public class ConcreteMediator extends Mediator { @Override public void method() { concreteColleagueA.action(); concreteColleagueB.action(); concreteColleagueA.doPrivateA(); concreteColleagueB.doPrivateB(); }}5.中介者模式在Android中的實際應用
Android的Activity實際就是一個中介者模式,形形式式的View交互都在Activity中統一執行,View之間彼此不交互。
|
新聞熱點
疑難解答