Java設計模式的中介者模式是行為模式之一。定義一個中介物件來封裝系列物件之間的互動。中介者使各個物件不需要明確地相互引用,從而使其耦合性鬆散,並且可以獨立地改變他們之間的交互作用。
如下圖所示:
生產者、消費者、代理商之間的中介模式實例:
public abstract class PersonColleague{ protected Mediator mediator; public Mediator getMediator() { return mediator; } public void setMediator(final Mediator mediator) { this.mediator = mediator; } protected abstract vtecprivessage(String context); PersonColleague consumer = null; private ProducerColleague producer = null; 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{ publicient 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 consumerI am a producer