Java デザインパターンのメディエーターパターンは動作パターンの 1 つです。仲介オブジェクトを定義して、シリーズ オブジェクト間の相互作用をカプセル化します。メディエーターにより、オブジェクトが相互に明示的に参照する必要がなくなり、オブジェクトが疎結合になり、相互作用を独立して変更できるようになります。
以下に示すように:
プロデューサー、コンシューマー、エージェント間の仲介モデルの例:
public abstract class PersonColleague{ protected Mediator メディエーター; public Mediator getMediator() { return mediator; } public void setMediator(final Mediator = mediator) } protected abstract void message(String context);} public class Mediator{パーソン同僚コンシューマー = null; プライベートプロデューサー同僚プロデューサー = null; パブリックプロデューサー同僚 getProducer() } public void setProducer;プロデューサー同僚プロデューサー) { this.Producer = プロデューサー; } public PersonColleague getConsumer() { return Consumer; } public void setConsumer(final PersonColleague 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("こんにちは! 私は消費者です"); public classProducerColleague extends PersonColleague{ public ProducerColleague(final Mediator mediator) { this.mediator = mediator; } @Override protected void message(final String context) { this.mediator.setProducer(this) }} public class Client{ public static void main(final String[] args) {final Mediator mediator = new Mediator(); Final PersonColleague person = new ConsumerColleague(mediator); person1 = 新しいプロデューサー同僚(仲介者); person.message("私は消費者です"); person1.message("私はプロデューサーです");
実行結果:
こんにちは!私は消費者です、私はプロデューサーです