Хороший ли это пример паттерна 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
179 +1
0
Ответы
1

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

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

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

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