当前位置: 首页 > news >正文

用腾讯云服务器做网站广州今日新闻头条新闻

用腾讯云服务器做网站,广州今日新闻头条新闻,我先做个网站怎么做的,专业建站团队一、说明 中介者模式是一种行为设计模式,减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。 (一) 解决问题 降低系统中对象之间的直接通信,将复杂的交互转化为通过中介者进行的间接交…

一、说明

中介者模式是一种行为设计模式,减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。

(一) 解决问题

降低系统中对象之间的直接通信,将复杂的交互转化为通过中介者进行的间接交互,从而解耦系统各部分,降低其耦合度。

(二) 使用场景

  • 当系统和对象之间存在复杂的交互关系,导致对象之间相互依赖、耦合度高,难以维护时
  • 当系统需要一个可复用的交互模块,用于多个对象之间的通信和协调时
  • 当想要将系统的控制逻辑集中管理、减少代码重复、提高代码可读性时

二、结构

  1. 组件(Component)是各种包含业务逻辑的类。每个组件都有一个指向中介者的引用,该引用被声明为中介者接口类型。组件不知道中介者实际所属的类,因此你可通过将其连接到不同的中介者以使其能在其他程序中复用。
  2. 中介者(Mediator)接口声明了与组件交流的方法,但通常仅包括一个通知方法。组件可将任意上下文(包括自己的对象)作为该方法的参数,只有这样接收组件和发送者类之间才不会耦合。
  3. 具体中介者(ConcreteMediator)封装了多种组件间的关系。具体中介者通常会保存所有组件的引用并对其进行管理,甚至有时会对其生命周期进行管理。
  4. 组件并不知道其他组件的情况。如果组件内发生了重要事件,它只能通知中介者。中介者收到通知后能轻易地确定发送者,这或许已足以判断接下来需要触发的组件了。对于组件来说,中介者看上去完全就是一个黑箱。发送者不知道最终会由谁来处理自己的请求,接收者也不知道最初是谁发出了请求。

三、伪代码

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__doc__ = """
中介者模式例:实现一个简单的聊天室系统,其中中介者对象负责协调用户之间的消息传递
"""from abc import ABC, abstractmethodclass Mediator(ABC):"""中介者基类"""@abstractmethoddef send_message(self, sender, message):passclass ChatRoom(Mediator):"""具体中介者"""def __init__(self):self.users = []def add_user(self, user):self.users.append(user)def send_message(self, sender, message):for user in self.users:if user != sender:user.receive_message(message)class User(ABC):"""抽象组件类(用户)"""def __init__(self, name, mediator):self.name = nameself.mediator = mediator@abstractmethoddef send_message(self, message):pass@abstractmethoddef receive_message(self, message):passclass ChatUser(User):"""具体组件类(用户)"""def send_message(self, message):print(f"{self.name} 发送消息: {message}")self.mediator.send_message(self, message)def receive_message(self, message):print(f"{self.name} 收到消息: {message}")if __name__ == "__main__":"""张三 发送消息: 大家好!李四 收到消息: 大家好!------------------------------李四 发送消息: 你好,张三张三 收到消息: 你好,张三"""chat_room = ChatRoom()user1 = ChatUser("张三", chat_room)user2 = ChatUser("李四", chat_room)chat_room.add_user(user1)chat_room.add_user(user2)user1.send_message("大家好!")print("-" * 30)user2.send_message("你好,张三")

四、优缺点

优点

  • 降低系统耦合度:将对象之间的通信集中在中介者对象中,使得各个对象之间的关系变得简单明了,降低了对象之间的直接依赖和耦合度。
  • 提高系统的灵活性,使其便于扩展和维护:将对象之间的交互逻辑集中在中介者对象中,使得系统更加灵活,能够动态地改变对象之间的交互方式。

缺点

  • 中介者对象可能变得复杂:随着系统中对象之间的交互关系变的复杂,使中介者对象庞大复杂,导致管理和维护成本增加。
  • 中介者模式增加了系统的单点故障:由于系统中所有对象都依赖于中介者对象进行通信,因此中介者对象出现故障或性能问题时,可能会影响整个系统的正常运行。

【Python笔记】设计模式-CSDN博客

http://www.hengruixuexiao.com/news/43892.html

相关文章:

  • wordpress好还是织梦好全网seo
  • 公司做网站需准备什么材料下载百度免费版
  • 1做网站的公司站群优化公司
  • 机关网站建设建议软文推广案例500字
  • 国外设计网站h开头东莞seo建站公司
  • 哈尔滨网站搜索优化公司最新网域查询入口
  • 七牛云上市给你一个网站怎么优化
  • 偃师网站制作互联网广告投放
  • 朝阳网站建设公司南宁百度快速优化
  • 西安做企业网站手机优化大师官方免费下载
  • 幼儿园主题网络图设计美丽鹭岛搜索引擎优化seo多少钱
  • 电器网站建设目的全网网站推广
  • 网站制作框架网络搭建是干什么的
  • 哈尔滨手机建站模板网站流量统计分析工具
  • app开发和网站开发新闻发稿公司
  • 郑州做网站hnmaorui朋友圈推广文案
  • 昆明php网站建设网络营销的作用和意义
  • 电脑怎么做网站电商运营培训机构哪家好
  • 怎么给自己的网站做模版沈阳网站建设制作公司
  • wix建站教程营销推广手段有什么
  • 设计网站注意哪些问题流量平台有哪些
  • 网站建设 html5视频营销的策略与方法
  • 软件测试网站开发与测试唐山公司做网站
  • 网站图片标题背景怎样做的seo网络推广经理
  • 做深度的互联网站免费推广论坛
  • python做的网站有什么漏洞培训教育机构
  • 性做爰网站今日广州新闻最新消息
  • 郑州做商城网站微商怎么引流被加精准粉
  • 制作网站的公司(深圳)新人跑业务怎么找客户
  • 大石桥网站制作学网络运营需要多少钱