中介者模式和观察者模式的区别_外观模式和中介者模式异同点

中介者模式和观察者模式的区别_外观模式和中介者模式异同点中介者模式 Mediator动机模式定义结构要点总结笔记动机在软件构建过程中,经常会出现多个多个对象相互关联交互的情况,对象之间常常会维持一种复杂的引用关系.如果遇到一些需求的更改.这种直接的引用关系将面临不断地变化这种情况下,我们可以使用一个”中介对象”来管理对象间地关联关系,避免相互交互地对象之间地紧耦合引用关系,从而更好地抵御变换模式定义用一个中介对象来封装(封装变化)一系列地对象交互中.中介者使各个对象不需要显式地相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

中介者模式 Mediator

动机

在软件构建过程中,经常会出现多个多个对象相互关联交互的情况,对象之间常常会维持一种复杂的引用关系.如果遇到一些需求的更改.这种直接的引用关系将面临不断地变化

这种情况下,我们可以使用一个”中介对象”来管理对象间地关联关系,避免相互交互地对象之间地紧耦合引用关系,从而更好地抵御变换

模式定义

用一个中介对象来封装(封装变化)一系列地对象交互中.中介者使各个对象不需要显式地相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变他们之间地交互

结构

在这里插入图片描述

在这里插入图片描述

要点总结

  • 将多个对象间复杂的关联关系解耦,Mediator模式将多个对象间的控制逻辑进行集中管理(往往在背后需要实现调用机制),变”多个对象相互管理”为”多个对象和一个中介者关联”,简化了系统的维护,抵御了可能的变化
  • 随着控制逻辑的复杂化,Mediator具体对象的实现可能相当复杂.这时候可以对Mediator对象进行分解处理
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系
  • Facade模式是解耦系统间(单向)的对象关联关系;Mediator模式是解耦系统内各个对象之间(双向)的关联关系

笔记

  • 情景 比如更改界面的时候控件会变 更改控件的时候界面会变.界面中引用控件,控件中引用界面
  • 双向依赖关系 控件引用界面 界面引用控件
  • 结构图中 Colleage之间式不依赖地(本来是直接依赖)Mediator和Colleage之间式双向依赖 但是Colleage之间不是双向依赖了
  • ConcreteColleage1 和 ConcreteColleage2现实当中可能不是继承某个子类
  • 将对象互相错综复杂地引用 变成 他们共同引用一个Mediator 然后互相调用地时候都是通过Mediator去调用
  • 调用通知规范是灵活地
  • 直接依赖关系变成间接依赖关系
  • Fasade解决地是系统外和系统内地隔离 Mediator是系统内自己地隔离
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168831.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度学习-10:人工智能简史及三剑客

    深度学习-10:人工智能简史及三剑客深度学习-10:人工智能简史及三剑客CSDN专栏:机器学习&深度学习(理论/实践)1人工智能简史深度学习理论的突破和深度学习硬件加速能力的突破,使AI在模式识别、无人驾驶、智力游戏领域取得空前的成功。学术界和工业界全力以赴掀起人工智能的新一轮热潮。各大互联网巨头纷纷成立人工智能研究中心,唯恐在新一轮人工智能的竞赛被无情淘汰。如今,机器学习的应用已遍及人工智能的各个分支,如专…

    2022年9月30日
    1
  • 整数补码加减法运算法则是什么_补码加减法中

    整数补码加减法运算法则是什么_补码加减法中整数的补码计算正数的补码计算:与原码相同负数的补码计算:①先求出负数的原码,如-4的原码为10000100②通过原码求出反码,负数的反码就是:除符号位以外,其他位全部取反,如-4的反码为11111011③负数的补码等于负数的反码末位+1,如-4的补码为11111100特例:约定-128的补码为10000000注:若已知补码求原码:正数也是它本身,负数的求法同上,即对补码除符号位外取反,末位加1,就得到原码整数补码加减运算加法[A+B]补=[A]补+[B]补减法[

    2022年9月22日
    1
  • 点对点通信-简介

    点对点通信-简介点对点连接是两个系统或进程之间的专用通信链路。想象一下直接连接两个系统的一条线路。两个系统独占此线路进行通信。点对点通信的对立面是广播,在广播通信中,一个系统可以向多个系统传输。电话呼叫是面向电路的两部电话机之间的点对点链路。但是,呼叫通常是通过电话公司中继线多路复用的;因此虽然电路本身可能是虚拟的,但用户在进行点对点通信会话。端到端连接是指通过交换网络的两个系统间的连接。例如,因

    2022年7月15日
    14
  • linux系统添加审计用户并进行权限控制「建议收藏」

    linux系统添加审计用户并进行权限控制「建议收藏」审计账号只用于审计功能,其权限可在普通账号基础上进行修改1) 创建审计账号shenji[root@localhost~]#useraddshenji[root@localhost~]#passwdshenji2) 修改审计账号权限使其只具有查看功能[root@localhost~]#setfacl-mu:shenji:rx/*此命令是添加acl权限控制,效果…

    2022年5月25日
    43
  • 文字超出三行省略…显示全文「建议收藏」

    文字超出三行省略…显示全文「建议收藏」1、在开发过程中,我们经常会用到这种超出三行显示…的要求,使用css属性是可以的,但是需要考虑兼容性问题实现单行文本的溢出显示省略号,我们应该都知道用text-overflow:ellipsis

    2022年8月2日
    2
  • C#中Socket的简单使用

    C#中Socket的简单使用以前学过的Socket,后来没怎么用过,就基本忘了,所以闲来时重新回顾学习一番.一.Socket的概念Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传

    2022年6月30日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号