摘要: 耦合与变化: 耦合是软件不能抵御变化灾难的根本性原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。 动机(Motivate): 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无 阅读全文
posted @ 2016-01-27 16:39 无心々菜 阅读(152) 评论(0) 推荐(0)
摘要: 直接与间接: 人们对复杂的软件系统常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活、满足特定需求的解决方案。 动机(Motivate): 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构 阅读全文
posted @ 2016-01-27 16:38 无心々菜 阅读(162) 评论(0) 推荐(0)
摘要: 无处不在的Template Method 如果你只想掌握一种设计模式,那么它就是Template Method!动机(Motivate): 变化 -----是软件设计的永恒主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何分析,并发现系统中的变化和稳定点,并使用特定的设计方法来应对这 阅读全文
posted @ 2016-01-27 16:38 无心々菜 阅读(352) 评论(0) 推荐(0)
摘要: 面向对象的代价 面向对象很好地解决了系统抽象性的问题,同时在大多数情况下,也不会损及系统的性能。但是,在某些特殊的应用中下,由于对象的数量太大,采用面向对象会给系统带来难以承受的内存开销。比如:图形应用中的图元等对象、字处理应用中的字符对象等。 动机(Motivate): 采用纯粹对象方案的问题在于 阅读全文
posted @ 2016-01-27 16:03 无心々菜 阅读(177) 评论(0) 推荐(0)
摘要: 动机(Motivate): 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?意图(Intent): 为子系统中的一组接口提供一个一致的界面,Fac 阅读全文
posted @ 2016-01-27 11:55 无心々菜 阅读(213) 评论(0) 推荐(0)
摘要: 动机(Motivate): 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。意图(Intent):将对象组合成树形结构以表示“部分-整体”的层次结构。Composit... 阅读全文
posted @ 2016-01-25 14:25 无心々菜 阅读(207) 评论(0) 推荐(0)
摘要: 子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。按类继承的作法如下://抽象坦克 public abstract class Tangk { ... 阅读全文
posted @ 2016-01-22 14:15 无心々菜 阅读(249) 评论(0) 推荐(0)
摘要: 动机(Motivate):在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?意图(Intent):将抽象部分与实现部分分离,使它们都可以独立的变化。 ... 阅读全文
posted @ 2016-01-22 10:49 无心々菜 阅读(202) 评论(0) 推荐(0)
摘要: 适配(转换)的概念无处不在......适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。例如:二转换为三箱插头,将高电压转换为低电压等。动机(Motivate): 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象... 阅读全文
posted @ 2016-01-22 10:07 无心々菜 阅读(192) 评论(0) 推荐(0)
摘要: 依赖关系倒置: 动机(Motivate): 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化?如何向“客户程序(使用这些对象的程序)"隔离出“这些易变对象”,从而使得“依赖这些易变对象的... 阅读全文
posted @ 2016-01-21 17:44 无心々菜 阅读(149) 评论(0) 推荐(0)