Паттерн-посредник в шаблонах проектирования Java является одним из поведенческих шаблонов. Определите объект-посредник, чтобы инкапсулировать взаимодействие между объектами серии. Медиаторы устраняют необходимость в том, чтобы объекты явно ссылались друг на друга, делая их слабо связанными и позволяя им независимо изменять свое взаимодействие.
Как показано ниже:
Примеры посреднических моделей между производителями, потребителями и агентами:
общественный абстрактный класс PersonColleague {защищенный посредник getMediator () {возвращение посредника; } общественный недействительный setMediator (конечный посредник посредника) { this.mediator = посредник; } защищенное абстрактное недействительное сообщение (контекст строки);} общественный класс Mediator {частный Потребитель PersonColleague = null; частный производитель ProducerColleague = null; общественный ProducerColleague getProducer () {возвращение производителя; Производитель ProducerColleague) { this.producer = производитель; } public PersonColleague getConsumer () { return потребитель; } public void setConsumer (конечный потребитель PersonColleague) { this.consumer = потребитель; } public Mediator() { } publicsynced void message(final String). context) { if (потребитель != null) { System.out.println(context } else if (producer != null) { System.out.println(context);} }}public class ConsumerColleague расширяет PersonColleague {public ConsumerColleague(final Mediator mediator) {this.mediator = mediator; } @Override protected void message(final String context) {this.mediator.setConsumer( this); this.mediator.message("Привет! Я потребитель"); }}public class ProducerColleague расширяет PersonColleague{ public ProducerColleague (конечный посредник Mediator) { this.mediator = mediator; } @Override protected void message (конечный контекст строки) { this.mediator.setProducer (this); this.mediator.message (контекст }} public class Client {public); static void main(final String[] args) { Final Mediator mediator = новый Mediator(); Final PersonColleague person = new ConsumerColleague(mediator); person1 = new ProducerColleague(mediator); person.message("Я потребитель"); person1.message("Я производитель" }}
Результаты запуска:
здравствуйте, я потребитель, я производитель