Facade模式和Mediator模式
Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。Facade模式经常用来隔离数据库和应用程序,如下图:


Mediator模式是用一个中介对象来封装一系列关于对象交互行为。为何使用Mediator?各个对象之间的交互操作非常多。每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为。如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性。如下图,假设说ListBox和TextBox之间有很多交互,我们把这些交互提取到QuickEntryMediator中里来,ListBox和TextBox的使用者并不知道Mediator的存在。

如果交互行为涉及范围广泛并且可见,那么可以使用Facade模式,另一方面如果范围小则可以使用Mediator模式。

Facade模式和Mediator模式相关推荐

  1. Java设计模式(16)中介模式(Mediator模式)

    Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉 ...

  2. [DP思考录]向左走,向右走: Observer模式 VS Mediator模式

    <<向左走,向右走>>曾经骗去了我无数的眼泪.一首<<遇见>>更是改变了我人生的轨迹.虽然此篇只是技术文章,但借此也缅怀那段颓废的日子: 向左走,向右走 ...

  3. 设计模式【18】——中介者模式( Mediator 模式)

    文章目录 前言 一.中介者模式( Mediator 模式) 二.具体源码 1.Colleage.h 2.Colleage.cpp 3.Mediator.h 4.Mediator.cpp 5.main. ...

  4. 设计模式之中介者模式(mediator模式)

    引入中介者模式 中介者模式实例 中介者模式分析 引入中介者模式 大家想象一下有十个人要共同完成一个工作,他们要互相合作和沟通,并且根据对方的通知可能要改变自己的状态,但这通常会带来很多问题,流程过于复 ...

  5. 【设计模式系列】行为型模式之Mediator模式

    概要 基于OO来设计经常会产生很多对象,而这些对象之间又会相互交互影响,所以经常会导致对象间的紧耦合,为了能够避免这种紧耦合,就需要一种机制让每个对象能够很方便的跟其他对象交互而又不需要跟这些对象交叉 ...

  6. java mediator模式_设计模式之中介者模式(mediator模式)

    引入中介者模式 中介者模式实例 中介者模式分析 引入中介者模式 大家想象一下有十个人要共同完成一个工作,他们要互相合作和沟通,并且根据对方的通知可能要改变自己的状态,但这通常会带来很多问题,流程过于复 ...

  7. 行为模式之Mediator模式

    1.意图 用一个中介对象来封装一系列的交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 2.适用性 (1)一组对象以定义良好但是复杂的方式进行通信.产生的相 ...

  8. Java设计模式(1)工厂模式(Factory模式)

    工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...

  9. Java设计模式(8)组合模式(Composite模式)

    Composite定义:将对象以树形结构组织起来,以达成"部分-整体" 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Compo ...

最新文章

  1. 全变量进气系统伺服马_三种伺服电动缸系统的特点
  2. 谷爱凌的父亲不是谷歌5号员工,但母亲一家都是高学历的运动健将
  3. 搜索引擎索引之如何建立索引
  4. python oracle orm_Python ORM
  5. WinForm中使用AnyCAD三维控件 の 初始化
  6. ATL-CComCreator(CComCoClass的使用)
  7. 修改蓝牙耳机按键映射_拆解报告:QCY T4 TWS蓝牙耳机
  8. vss登录invalid handle问题的解决办法
  9. mysql 触发器条件判断偶尔失效_mysql┃多个角度说明sql优化,让你吊打面试官!...
  10. 某“高人”谈论股市,对现在行情的分析
  11. 快速搭建一个本地FTP服务器
  12. android主题编辑器,安卓 EMUI主题编辑器 Theme Editor For EMUI v1.13.5 专业版
  13. 计算机原理(CPU+存储+OS+指令)
  14. 磨金石教育摄影技能干货分享||如何将平凡的窗户拍出美感
  15. 【E2E】E2E通信保护协议学习1
  16. python学习之钉钉打卡
  17. python十个评委打分表_评委评分表
  18. android车机启动器,【分享】车载启动器 AG 车载桌面启动器1.5.1车机桌面
  19. python调用perl_perl和python的相互调用
  20. 计算机基础与应用计划大纲,计算机基础课程大纲及教学计划

热门文章

  1. Jquery实现表格动态增加一行,删除一行(最简洁的代码实现)
  2. JAVAWEB——监听器(Listener),监听器编写步骤,八大监听器的介绍
  3. 【问题解决】Invalid bound statement(not found)
  4. 红旗Linux的特点和应用范围,三大特性!红旗Linux Desktop 7体验
  5. canvas + JavaScript实现幸运大转盘
  6. php实现ckeditor编辑器添加水印及使用误区
  7. java Servlet 笔记
  8. 随机数在密码学中生成Nonce的用法
  9. 重点知识学习(8.4)--[线程池 , ThreadLocal]
  10. 华为云弹性云服务器有哪些优势?