Java设计模式之中介者模式(Mediator Pattern)简介
Java设计模式之中介者模式(Mediator Pattern)简介
发布时间:2016-12-28 来源:查字典编辑
摘要:Java设计模式的中介者模式是行为模式之一。定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显式地相互引用,从而使其耦合性松...

Java设计模式的中介者模式是行为模式之一。定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显式地相互引用,从而使其耦合性松散,并且可以独立地改变他们之间的交互。

如下图所示:

Java设计模式之中介者模式(Mediator Pattern)简介1

生产者、消费者、代理商之间的中介模式实例:

public abstract class PersonColleague { protected Mediator mediator; public Mediator getMediator() { return mediator; } public void setMediator(final Mediator mediator) { this.mediator = mediator; } protected abstract void message(String context); } public class Mediator { private PersonColleague consumer = null; private ProducerColleague producer = null; public ProducerColleague getProducer() { return producer; } public void setProducer(final ProducerColleague producer) { this.producer = producer; } public PersonColleague getConsumer() { return consumer; } public void setConsumer(final PersonColleague consumer) { this.consumer = consumer; } public Mediator() { } public synchronized void message(final String context) { if (consumer != null) { System.out.println(context); } else if (producer != null) { System.out.println(context); } } } public class ConsumerColleague extends PersonColleague { public ConsumerColleague(final Mediator mediator) { this.mediator = mediator; } @Override protected void message(final String context) { this.mediator.setConsumer(this); this.mediator.message("hello! i am a consumer"); } } public class ProducerColleague extends PersonColleague { public ProducerColleague(final Mediator mediator) { this.mediator = mediator; } @Override protected void message(final String context) { this.mediator.setProducer(this); this.mediator.message(context); } } public class Client { public static void main(final String[] args) { final Mediator mediator = new Mediator(); final PersonColleague person = new ConsumerColleague(mediator); final PersonColleague person1 = new ProducerColleague(mediator); person.message("I am a consumer"); person1.message("I am a producer"); } }

运行结果:

hello! i am a consumer I am a producer

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类