摘要: 依赖关系的倒置抽象不应该依赖于实现细节,实现细节应该依赖于抽象动机(Motivation)在软件系统中,经常面临着"某些结构复杂的对象"的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。如何应对这种变化?如何向"客户程序"(使用这些对象的程序)"隔离出"这些易变对象",从而使得"依赖这些易变对象的客户程序"不随着需求改变而改变?意图(Intent)使用原型... 阅读全文
posted @ 2009-12-30 00:36 疯狂的咸鱼 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Factory Method --- 工厂方法从耦合关系谈起耦合关系直接决定着软件面对变化时的行为--模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改--模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变软件需求的变化不应该是工程师抱怨的问题,而应该是工程师要解决的问题主要的部分---抽象的高层部分---变化慢细节的部分---具体的实现部分-... 阅读全文
posted @ 2009-12-29 00:25 疯狂的咸鱼 阅读(318) 评论(0) 推荐(0) 编辑
摘要: ·如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正...分析,构建房屋的组成结构是稳定的,但是房屋的窗口,门的风格可能并不固定动机(Motivation)在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化... 阅读全文
posted @ 2009-12-27 22:59 疯狂的咸鱼 阅读(339) 评论(0) 推荐(0) 编辑
摘要: new 的问题常规的对象创建方法: Road road = new Road(); -- 实现依赖,不能应对“具体实例化类型”的变化。解决思路: -- 封装变化点--哪里变化,封装哪里 -- 潜台词:如果没有变化,当然不需要额外的封装工厂模式的缘起·变化点在"对象创建",因此就封装"对象创建"·面向接口编程--依赖接口,而非依赖实现·最简单的解... 阅读全文
posted @ 2009-12-25 23:59 疯狂的咸鱼 阅读(373) 评论(0) 推荐(0) 编辑
摘要: singleton --- 独生子,独生生活 --- 保证一个类仅有一个实例,并提供一个该实例的全局访问点模式分类从目的来看--- 创建型(Creational)模式:负责对象创建--- 结构型(Structural)模式:处理类与对象间的组合--- 行为型(Behavioral)模式:类与对象交互中的职责分配。从范围来看:--- 类模式处理类与子类的静态关系--- 对象模式处理对象间的动态关系动... 阅读全文
posted @ 2009-12-23 23:34 疯狂的咸鱼 阅读(566) 评论(1) 推荐(0) 编辑
摘要: 预留 阅读全文
posted @ 2009-12-23 20:14 疯狂的咸鱼 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 对象从概念层面---对象是拥有责任的抽象从规格层面---对象是一系列可以对其他对象使用的公共接口从语言实现层面来看---对象封装了代码和数据怎么设计?1.遵循面向对象设计的原则2.熟悉一些典型的设计模式设计原则--->设计模式·针对接口编程,而不是针对实现编程---客户(调用程序的程序)无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口·优先使用对象组合,而... 阅读全文
posted @ 2009-12-23 20:12 疯狂的咸鱼 阅读(387) 评论(0) 推荐(0) 编辑