23种设计模式介绍(Python示例讲解)(31)

2023-04-30 来源:飞速影视
中介者模式的优缺点包括:
解耦了各个对象之间的交互关系,使得系统更加灵活和易于维护。降低了系统的复杂度,使得各个对象之间的交互变得简单明了。可以集中管理各个对象之间的交互关系,从而提高系统的可维护性和可扩展性。中介者模式的缺点是,由于中介者对象需要负责协调各个同事对象之间的交互关系,因此它的职责可能会变得非常复杂。另外,由于中介者对象需要了解各个同事对象之间的交互关系,因此它可能会变得比较庞大。
下面是一个简单的中介者模式的 Python 实现,该实现使用一个聊天室作为中介者,多个用户作为同事类:
from typing import Listclass User: def __init__(self, name: str, mediator): self.name = name self.mediator = mediator def send_message(self, message: str): self.mediator.send_message(message, self) def receive_message(self, message: str): print(f"{self.name} received message: {message}")class ChatRoom: def __init__(self): self.users: List[User] = [] def add_user(self, user: User): self.users.append(user) def send_message(self, message: str, sender: User): for user in self.users: if user != sender: user.receive_message(f"{sender.name}: {message}")if __name__ == "__main__": chat_room = ChatRoom() alice = User("Alice", chat_room) bob = User("Bob", chat_room) charlie = User("Charlie", chat_room) chat_room.add_user(alice) chat_room.add_user(bob) chat_room.add_user(charlie) alice.send_message("Hi everyone!") bob.send_message("Hello Alice!") charlie.send_message("Hey guys, what"s up?")
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号