当对象之间的交互操作很多且每个对象的行为操作都彼此依赖时,为防止在修改一个对象的行为时,同时涉及修改很多其他对象的行为,可采用中介者模式,来解决紧耦合问题。该模式将对象之间的多对多关系变成一对多关系,中介者对象将系统从网状结构变成以调停者为中心的星形结构,达到降低系统的复杂性,提高可扩展的作用。
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之间彼此不交互。
新闻热点
疑难解答