中介者模式和观察者模式的区别_序列中介作用

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


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/169035.html原文链接:https://javaforall.net

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


相关推荐

  • ubuntu 安装多个CUDA版本并可以随时切换

    ubuntu 安装多个CUDA版本并可以随时切换CUDA是什么就不介绍了,直接讲怎么实现CUDA多版本的共存和实时切换。1、安装多个版本的CUDA这里,我们以cuda9-1版本和cuda9-0版本为例(先安装哪个无所谓) 首先,在cuda版本库中选择自己需要的cuda版本。 然后,选择对应的安装包,这里选择runfile类型的安装文件,以便后面设置每个cuda的安装路径。 下载完成以后,我们利用cd命令,进入到cuda_8.0.61_375.2…

    2022年6月17日
  • 中间件

    我们在开发中经常会遇到判断用户是否登录,把没有登录的用户请求跳转到登录页面。我们通常会通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数能也需要加上装饰器,这样是不是稍微有点繁琐;

    2022年3月29日
  • PAT考试经验总结(甲乙级均适用)~~想满分的请看这里!~~

    PAT考试经验总结(甲乙级均适用)~~想满分的请看这里!~~emmmmmmm总算是考了个满分,不用以后再交PAT考场一日游入场费了T^T第一次在去年秋天,被第一题狼人杀给干掉了〒▽〒,最后得了81分,第二次就是今年春季,侥幸满分通过了==为了总结自己踩过的坑,给后面要考的同学们提供一些微薄的帮助,遂作此文。考场经验一.注意,考试的运行时的黑框,是不能使用Crtl+V进行粘贴的,但这不代表考试不能进行复制粘贴,PAT考试系统里的代码…

    2022年4月29日
  • 将String转换成Int数组-Java「建议收藏」

    今天贴出来一个编程小技巧,利用substring或charAt将字符转换为int数组。方法一:publicclassParseString{publicstaticint[]stringToInts(Strings){int[]n=newint[s.length()];for(inti=0;i

    2022年4月12日
  • Burp Suite抓包使用步骤「建议收藏」

    Burp Suite抓包使用步骤「建议收藏」原创https://www.cnblogs.com/mihoutao/p/11690432.html金龟子大战猕猴桃BurpSuite抓包工具的操作步骤见安装步骤那篇博客检查是否存在漏洞,就看拦截之后修改过的数据是否写进了数据库举例一、上传文件1、打开Burp.调整Proxy-Intercept-Interceptison为‘Interceptisoff’(拦截器开关)2、在火狐中打开需要拦截的网页,(比如同charlse博客里面写到的上传1.txt文件),点击上传文件按钮3、回

    2022年4月30日
  • 【ThinkingInC++】61、非成员运算符「建议收藏」

    【ThinkingInC++】61、非成员运算符

    2022年1月17日

发表回复

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

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