Java设计模式之中介者模式(Mediator Pattern)简介
程序员文章站
2024-02-29 16:35:58
java设计模式的中介者模式是行为模式之一。定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显式地相互引用,从而使其耦合性松散,并且可以独立地改变他们之间的...
java设计模式的中介者模式是行为模式之一。定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显式地相互引用,从而使其耦合性松散,并且可以独立地改变他们之间的交互。
如下图所示:
生产者、消费者、代理商之间的中介模式实例:
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