摘要: 职责链模式 一、职责链模式 1.基本介绍 1)职责链模式(Chain of Responsibility Pattern),又叫责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。 2)职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能 阅读全文
posted @ 2019-08-11 21:17 思丿无邪 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 策略模式 一、策略模式(Strategy Pattern) 1.基本介绍 1)策略模式中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 2)这算法体现了几个设计原则: + 把变化的代码从不变的代码中分离出来 + 针对接口编程而不是具体类(定义了策 阅读全文
posted @ 2019-08-11 18:00 思丿无邪 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 状态模式 一、状态模式 1.状态模式 1)状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换 2)当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类 2.原理类图 1)Conte 阅读全文
posted @ 2019-08-11 17:33 思丿无邪 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 解释器模式 一、应用实例 通过解释器模式来实现四则运算,如计算a+b c的值。具体要求 1)先输入表达式的形式,比如a+b+c d+e,要求表达式的字母不能重复。 2)分别输入a,b,c,d,e,返回结果。 二、解释器模式 1.基本介绍 1)在编译原理中,一个算术表达式通过词法分析器形成词法单元,而 阅读全文
posted @ 2019-08-11 17:01 思丿无邪 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式 一、备忘录模式(Memento Pattern) 1.基本介绍 1) 备忘录模式 (Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态 2)备忘录对象主要用来记录一种状态,或者某些数据,当要 阅读全文
posted @ 2019-08-11 15:01 思丿无邪 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 中介者模式 一、中介者模式(Mediator Pattern) 1.基本介绍 1)用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 2)中介者模式属于行为型模式,使代码易于维护 3)比如MVC模式,C(Controller 阅读全文
posted @ 2019-08-11 14:40 思丿无邪 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 一、应用实例 1)气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。 2)需要设计开放型API,便于其他第三方也能接入气象站获取数据。 3)提供温度、气压和湿度的接口 4)测量数据更新时,要能实时的通知给第三方 二、观察者模式 1.基本介绍 阅读全文
posted @ 2019-08-11 08:30 思丿无邪 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式 一、迭代器模式 1.基本介绍 1)如果我们集合元素是用不同的方式实现的,有数组,还有java的集合类等,当客户端要遍历这些集合元素时就要使用多种遍历方式,还会暴露元素的内部结构,可以考虑使用迭代器模式解决。 2)提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象 阅读全文
posted @ 2019-08-11 08:03 思丿无邪 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 访问者模式 一、应用实例 将观众分为男和女,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(成功、失败等) 二、访问者模式 1.基本介绍 1)封装一些作用于某种数据结构的各元素操作,在不改变数据结构的前提下定义作用于这些元素的新的操作。 2)将数据结构与数据操作分离,解决 数据结构 阅读全文
posted @ 2019-08-11 07:30 思丿无邪 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 命令模式 一、应用实例 1)一套智能家电,有照明灯、风扇、冰箱、洗衣机 2)这些家电来自不同的厂家,我们不想针对每一种家电都安装一个app,希望通过一个app可以控制全部 3)要实现一个app控制所有家电,则每个家电厂家要提供一个统一的接口给app调用。这时可以考虑使用命令模式。 4)命令模板可将“ 阅读全文
posted @ 2019-08-11 06:55 思丿无邪 阅读(221) 评论(0) 推荐(0) 编辑