摘要: 当想为一个对象的组合增加新的能力,并且封装并不重要时。 一个对象结构包含多个对象,希望对这些对象实施一些依赖其具体类型的操作,在访问者中针对每一个具体的类型都提供一个访问操作,不同类型的对象可以有不同的访问操作;或者需要对一个对象结构中的对象进行很多不同的且不相关的操作时,要避免让这些操作“污染”这 阅读全文
posted @ 2017-06-28 20:49 鬼神不灭 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 建造者模式是对象的创建模式,可以将一个对象的内部表现和生成过程分割开来,从而使一个建造过程具有生成不同内部表现的对象的功能。 适用场景:RPG中游戏角色、视频播放软件 比如进入RPG游戏创建角色,先创建角色的模型、再创建角色的职业、再创建角色的性别等 输出: 阅读全文
posted @ 2017-06-08 20:37 鬼神不灭 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 当有多个对象可以处理同一请求,具体哪个对象要到运行时再定,客户端只需将请求提交到责任链上,无需关心谁处理 适用场景:采购审批子系统、OA中假条审批模块 输出: 阅读全文
posted @ 2017-06-07 21:01 鬼神不灭 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 一个对象有很多行为,避免用众多if……else if这种形式把这些行为转移到相应的具体策略中,可避免难以维护的多重选择。 适 阅读全文
posted @ 2015-09-14 09:50 鬼神不灭 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 如果一个系统要在抽象化和具体化之间增加更多的灵活性,避免在两个层次 阅读全文
posted @ 2015-09-14 09:44 鬼神不灭 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 1 //子系统中的类 2 class ModuleA{ 3 public void method(){ 4 //业务代码 5 } 6 ... 阅读全文
posted @ 2015-09-13 10:40 鬼神不灭 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 1 import java.util.HashMap; 2 import java.util.Map; 3 4 //抽象享元接口 5 interface Flyweight{ 6 //state参数为外蕴状态 7 ... 阅读全文
posted @ 2015-09-13 10:36 鬼神不灭 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不被允许直接操作一个对象,可通过一种中间的代理对象实现对目标对象的操作: 1 //抽象目标类 2 abstract class Target{ 3 public ab... 阅读全文
posted @ 2015-09-06 21:30 鬼神不灭 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。就像是窗户一样,先是玻璃,玻璃装上框架,再涂上颜色,每进行一层,都会增加新一层赋予的新功能: 阅读全文
posted @ 2015-09-06 21:23 鬼神不灭 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。通常用树结构来表示这种部分、整体的关系: 1 import java.util.ArrayList; 2 import java.... 阅读全文
posted @ 2015-09-05 21:54 鬼神不灭 阅读(158) 评论(0) 推荐(0) 编辑