摘要: 19.职责链模式(Chain of Responsibility Pattern) 阅读全文
posted @ 2016-01-28 17:38 无心々菜 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 动机(Motivate): 在软件构建 过程中,我们需要为某些对象建立一种“通知依赖关系” 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面 向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而 阅读全文
posted @ 2016-01-28 17:37 无心々菜 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 17.解释器模式(Interpreter Pattern) 阅读全文
posted @ 2016-01-28 17:37 无心々菜 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 动机(Motivate): 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作”提供了可能。 使用面向对象技术将这种遍历机制抽象为“迭代器对象 阅读全文
posted @ 2016-01-27 16:40 无心々菜 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 耦合与变化: 耦合是软件不能抵御变化灾难的根本性原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。 动机(Motivate): 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无 阅读全文
posted @ 2016-01-27 16:39 无心々菜 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 直接与间接: 人们对复杂的软件系统常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活、满足特定需求的解决方案。 动机(Motivate): 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构 阅读全文
posted @ 2016-01-27 16:38 无心々菜 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 无处不在的Template Method 如果你只想掌握一种设计模式,那么它就是Template Method!动机(Motivate): 变化 -----是软件设计的永恒主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何分析,并发现系统中的变化和稳定点,并使用特定的设计方法来应对这 阅读全文
posted @ 2016-01-27 16:38 无心々菜 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 面向对象的代价 面向对象很好地解决了系统抽象性的问题,同时在大多数情况下,也不会损及系统的性能。但是,在某些特殊的应用中下,由于对象的数量太大,采用面向对象会给系统带来难以承受的内存开销。比如:图形应用中的图元等对象、字处理应用中的字符对象等。 动机(Motivate): 采用纯粹对象方案的问题在于 阅读全文
posted @ 2016-01-27 16:03 无心々菜 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 动机(Motivate): 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?意图(Intent): 为子系统中的一组接口提供一个一致的界面,Fac 阅读全文
posted @ 2016-01-27 11:55 无心々菜 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 动机(Motivate): 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。意图(Intent):将对象组合成树形结构以表示“部分-整体”的层次结构。Composit... 阅读全文
posted @ 2016-01-25 14:25 无心々菜 阅读(186) 评论(0) 推荐(0) 编辑