中介者模式(Mediator)   调度.调停   意图 用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散 而且可以独立地改变它们之间的交互. 中介者模式又称为调停者模式.   面向对象的程序设计中,我们通常将功能进行分解,按照职责以类为维度进行划分,也就是使用时功能最终将分布在多个对象中 并且我们会尽可能的保持对象功能的单一(单一职责原则) 相对于对象的单一职责来说,任何的系统或者模块的功能却并不会单一,往往都是有多个对象交互协作来实现所…
策略模式 Strategy   与策略相关的常见词汇有:营销策略.折扣策略.教学策略.记忆策略.学习策略.... “策略”意味着分情况讨论,而不是一概而论 面对不同年龄段的人,面对不同的商品,必然将会有不同的话术: 面对购物总价的范围,很可能会有不同的折扣方案: 面对理解能力不同的学生,必然有不同的教学策略:   而在我们程序的世界里,“策略”就是分情况讨论.也就是类似状态模式中的条件分支或者选择分支. 只不过状态模式中是事物的不同状态,而策略模式中关注的是处理方法. 比如 if(totalPr…
观察者模式 Observer 意图 定义对象一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都得到通知并自动更新. 别名:依赖(Dependents),发布订阅(Publish-Subscribe)源-监听(Source-Listener)   <Hold On, We're Going Home>是加拿大说唱歌手德雷克与制作组合Majid Jordan合作的节奏布鲁斯歌曲 第一句“I got my eyes on you”就是“我一直关注你”   I got my eyes…
#include <iostream> #include <string> using namespace std; class Colleague; class Mediator { public: ; }; class Colleague { public: Colleague(Mediator* pstMediator): m_pstMediator(pstMediator) { } ; ; protected: Mediator* m_pstMediator; }; cla…
1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同. 例子1:顾客在超市中将选择的商品,如苹果.图书等放在购物车中,然后到收银员处付款.在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问购物车内顾客所选择的商品. 此时,购物车作为一个ObjectStructure(对象结构)用于存储各种类型的商品…
1.Iterator模式 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或者阵列)上遍访的接口,设计人员无需关心容器的内容. Iterator模式 - 一个一个遍历,我们将学习从含有多个元素的集合中将各个元素逐一取出来的iterator模式. 导学 对于数组我们使用的是下标来进行处理的: 1 int array[] = new int[3];    2 for (int i = 0; i < array.length; i+…
中介者模式是一种行为型设计模式.在中介者模式中创建了一个中介对象来负责不同类间的通信.因为这些类不需要直接交互,所以也就能避免它们之间的直接依赖,实现解耦的效果. 中介者模式的一个典型案例是老式小火车站.为保证铁路系统稳定运行,两列火车一般不会直接通信,而是听从车站管理员的调度.这里车站管理员就是一个中介者.他维护着一个火车进站的调度表,让火车站一次只允许一列火车停靠.当一列火车离开车站时,他才会通知调度表中的下一趟火车进站. 下面的代码模拟了小火车站管理员调度火车的工作. 火车接口 train…
模式动机 在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理. 对象可重用性差:由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个系统或模块重用,这些对象表现出来更像一个不可分割的整体,职责较为混乱. 系统扩展性低:增加一个新的对象需要在原有相关对象上增加引用,增加新的引用关系也需要调整原有对象,系统…
中介者模式是关于数据交互的设计模式,该模式的核心是一个中介者对象,负责协调一系列对象之间的不同的数据请求,这一系列对象成为同事类.如房产中介(简直不想提它),买房的卖房的,租房的放租的都到房产中介那里去登记.如果有卖房的就会通知买房的去买房,如果有放租的就会通知租房的去租房.所有的事物都是通过中介进行通知转换,这样就形成了一个典型的星型结构,说道星型结构,网络中的交换机路由器不就是个大大的中介者么. 作用 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用.从而使它们可以松散…
一.什么是中介者模式 Mediator模式也叫中介者模式,是由GoF提出的23种 软件设计模式的一种.Mediator模式是行为模式之一, 在Mediator模式中,类之间的交互行为被统一放在 Mediator的对象中,对象通过Mediator对象同其他对象 交互,Mediator对象起着控制器的作用. 二.中介者模式的结构 三.中介者模式的角色和职责 mediator     中介者类的抽象父类. concreteMediator     具体的中介者类. colleague 关联类的抽象父类…