Когда бы вы использовали шаблон проектирования посредника

StackOverflow https://stackoverflow.com/questions/373598

Вопрос

Как указано в названии, когда бы вы порекомендовали использовать шаблон проектирования посредника и где вы видите, чтобы оно использовалось неправильно?

Это было полезно?

Решение

Используйте посредник, когда сложность объектной коммуникации начинает препятствуют повторному использованию объекта.Этот тип сложности часто появляется в экземплярах view, хотя на самом деле он может быть где угодно.

Неправильное использование посредника может привести к повреждению интерфейсов классов-коллег посредника.

Кажется немного забавным говорить о неправильном использовании шаблона.Если ваша реализация следует шаблону, значит, вы использовали шаблон.В противном случае, вы этого не сделали.Другими словами, если ваш посредник делает что-то другое, то, скорее всего, это не посредник.Паттерны определяются тем, что они делают, чем они на самом деле являются.Названия вещей - это просто ярлыки.

Реальный вопрос, который следует задать себе, заключается в том, соответствует ли ваша реализация шаблона обещаниям шаблона для вашего дизайна.Шаблон посредника направлен на то, чтобы инкапсулировать сложную межобъектную коммуникацию, когда она становится неуправляемой.Если он не достиг этого или сделал это не очень хорошо, вы могли бы сказать, что посредник используется не по назначению.В какой-то момент это становится оценочным суждением.

Другие советы

Я использовал его для работы с приложениями swing.

Когда я создаю графический интерфейс, мне не нравится, когда каждый элемент управления знает друг друга, потому что это потребовало бы создания подклассов.

Вместо этого у меня есть основной объект, который содержит прослушиватель и виджеты и позволяет ему выступать посредником между различными элементами управления, кнопками, текстовыми полями и т.д.

Посредник - это также, по сути, то, что представляет собой event-pump.Очень распространенный шаблон в графическом интерфейсе пользователя и играх.

Также я раньше использовал mediator для общения между очень разными системами и устаревшими фреймворками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top