Хороший ли это пример паттерна mediator? Вот пример использования паттерна mediator:class ChatRoom(object):
"""Mediator class"""
def display_message(self, user, message):
print("[{} says]: {}".format(user, message))
class User(object):
"""A class whose instances want to interact with each other"""
def __init__(self, name):
self.name = name
self.chat_room = ChatRoom()
def say(self, message):
self.chat_room.display_message(self, message)
def __str__(self):
return self.name
def main():
molly = User('Molly')
mark = User('Mark')
ethan = User('Ethan')
molly.say("Hi Team! Meeting at 3 PM today.")
mark.say("Roger that!")
ethan.say("Alright.")
if __name__ == '__main__':
main()
Скажите пожалуйста, удачный ли это пример для иллюстрации работы этого паттерна? Меня смущают две вещи:
1. объект-медиатор существует не в единственном экземпляре
2. объекты класса User не взаимодействуют между собой, а медиатор должен помогать именно в этом
ps:
Дело в том, что я ищу понятный и наглядный пример этого паттерна, приведённое решение пока самое незапутанное на мой взгляд

21 Авг 2019 в 06:58
163 +1
0
Ответы
1

Да, данный пример является удачным для иллюстрации работы паттерна Mediator. Хотя объект-медиатор (ChatRoom) создается в каждом экземпляре класса User, этот пример все равно показывает, как объекты класса User общаются друг с другом через медиатор.

В данном случае, метод say каждого пользователя вызывает метод display_message у объекта ChatRoom, который затем сообщает или отображает сообщение от отправителя (пользователя) всем остальным пользователям. Даже если объект-медиатор создается в каждом пользователе, это не нарушает идею паттерна Mediator, так как основная задача медиатора - обеспечение взаимодействия между объектами, что в данном случае и происходит.

Таким образом, данный пример вполне подходит для иллюстрации работы паттерна Mediator и является понятным и наглядным.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир