设计模式之略见一斑(Mediator中介者模式)
如果对象群组中的交互错综复杂,而每个对象都需要了解本集合中的其他每个对象的情况,那么这个时候采用一个核心机构来负责控制它们的交互将非常有用,当这些相关对象之间的交互独立于对象的其他行为的时候,对责任进行集中也很有用。
Mediator模式的意图就是定义一个对象,该对象将对象集合之间的交互封装起来。利用该模式可以降低对象之间的耦合程序,避免对象之间的显式引用,还可以让对象间的交互独立变化。
在我们应用MVC设计模式的时候我们同时也可以应用中介者模模式。
MVC就是模型-视图-控制器这三个对象。而模式要与视图分开,所以我们可以把控制器当作中介者来接收视图的请求,并把处理业务逻辑交给模式
具体代码就是模型、视图对控制器的显式引用,而控制器引用这两个对象,这里就不写喽
小结:
中介者模式可以降低对象之间的耦合程序,避免了相关对象之间的显式引。中介者模式广泛应用于GUI应用程序的开发过程,特别是游戏开发的时候。借助这个模式,可以不必直接管理组件之间的复杂的交互。
在构造GUI的时候,Java会引导我们使用中介者模式,但它并不要求我们一定要把中介逻辑移出应用程序类。不过,这样做可以简化我们的代码。中介者类可专门用于处理对象间的交互,而应用程序类专门负责创建组件。
引入中介者对象还有其他的优点。例如,我们可以使用中介者对象集中负责维护对象模型的关系完整性。每当需要封装对象间的交互方式的时候,我们都可以应用中介者模式。
设计模式之略见一斑(Mediator中介者模式)相关推荐
- 设计模式笔记 16. Mediator 中介者模式(行为型模式)
16. Mediator 中介者模式 2008-09-09 动机(Motivation) 在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关 ...
- 设计模式学习笔记--Mediator 中介者模式
我们知道面向对象应用程序是由一组为了提供某种服务而彼此交互的对象组成.当彼此引用的对象数量比较少时,此时对象之间就为直接交互(点对点).而当对象的数量增加时,这种直接交互会导致对象之间复杂的.混乱的引 ...
- java mediator模式_设计模式之Mediator 中介者模式 - 解道Jdon
设计模式目录 >> 当前页 设计模式之Mediator(中介者) 板桥里人 http://www.jdon.com 2002/05/05 Mediator中介者模式定义: 用一个中介对象来 ...
- 设计模式——Mediator(中介者)模式
目录 前言 1 定义 2 适用性 3 结构 3.1 结构图 3.2 参与者 4 应用举例--以房产中介为例 4.1 Mediator--HouseMediator 4.2 具体Mediator--Be ...
- [导入]C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式.zip(8.75 MB)...
讲座内容: 本培训课程探讨GoF23之 Mediator 中介者模式的意图.动因.原理.应用场景与C#语言实现,以及该模式在.NET框架程序设计中的具体应用. 课程讲师: 李建忠 上海祝成信息科技有限 ...
- C++设计模式-Mediator中介者模式
Mediator中介者模式 作用:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. UML如下: Colleage抽象同事 ...
- 设计模式【18】——中介者模式( Mediator 模式)
文章目录 前言 一.中介者模式( Mediator 模式) 二.具体源码 1.Colleage.h 2.Colleage.cpp 3.Mediator.h 4.Mediator.cpp 5.main. ...
- 中介者模式php,php设计模式 Mediator (中介者模式)
用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 /** * 中介者模式 * * 用一个中介对象来封装一系列的对象交互,使各对象不需 ...
- 设计模式之禅【中介者模式】
真刀实枪之中介者模式 进销存管理,你管理的头大吗? 你可能会说,这有啥难的,先来幅模块示意图 从这个示意图可以看出,三个模块是相互依赖的,其中: 销售情况:销售部门要反馈情况,畅销就多采购 库存情况: ...
最新文章
- J360-cloud SpringCloud系列二:服务发现Discovery Service
- r语言做绘制精美pcoa图_R语言统计与绘图:绘制QQ图
- 洛谷P1122 最大子树和 树形DP初步
- beanutil 批量copy_BeanUtils.copyProperties 需要getset方法支持
- windows.h有哪些函数
- POS机C井例子代码(2)
- 中小学python、人工智能书籍(2022.02.02)
- Tensoflow-SSD代码解读(github-balancap代码)
- spl_autoload_register()函数使用详解
- python编程入门第3版pdf-Python程序设计 第3版pdf
- 理解Go的Goroutine和channel
- BMFont制作字体图集
- 【论文精读】TransE 及其实现
- 图片提取文字很神奇?试试三步实现OCR!
- 数据结构基础之堆排序
- 基于石墨烯的光电探测传感器研究
- 弱电流检测必备的保护环
- Java中for循环的用法(亲测)
- C++泛型编程——模板学习
- STM32的三种Boot模式的差异