摘要:
我计划能把我这一年的学习,工作中学到的,思考的问题写出来. 目标就是到明年年底的时候依然能够保持更新,并且能够继续有动力写新的blog. 简单但不轻松. 阅读全文
摘要:
我计划能把我这一年的学习,工作中学到的,思考的问题写出来. 目标就是到明年年底的时候依然能够保持更新,并且能够继续有动力写新的blog. 简单但不轻松. 阅读全文
摘要:
介绍一本旧书: Head first Design Pattern 类别:默认分类 查看评论文章来源:http://hi.baidu.com/hongchaol/blog/item/391ea9ec6be5482463d09fdf.html 阅读全文
摘要:
接口的抽象也不稳定的问题多维度的变化 将抽象部分和实现部分相分离,使他们都可以独立的变化。 根据不同的变化类型,建立不同的虚类,再在不同的具体实现中进行这些派生类的对象的组合。在虚类中放一个另外一个虚类的对象作为变量 Code:public abstract calss Tank{ protected TankOperation TankOP; public Tank(Tan... 阅读全文
摘要:
发布-订阅模型 需要为某些对象建立一种通知依赖关系。目标对象发生改变,所有观察者对象都会得到通知。如果依赖关系过于紧密就不能很好的抵御变化。 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。 CODE:public abstract class Subject{ ArrayList observerList = new Array... 阅读全文
摘要:
在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口 现存的对象放在新的环境中应用,但是新的环境要求的接口是这些现存对象不满足的。 大多数情况下对象适配器优于类适配器 类适配器采用多继承的实现方式,不良的高耦合 对象适配器采用对象组合方式 遗留代码的复用,类库的迁移等方面非常有用 Adapter模式本身要求我们尽可能的使用面向接口的编程风格,这样才能在后期很方便的适配。 对... 阅读全文
摘要:
依赖关系倒置拥有被较稳定的一致接口,但结构复杂的多变的对象隔离出这些易变对象,从而使得依赖这些易变对象的客户程序不随着需求改变而改变。使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)之间的耦合关系,要求这些易变类拥有稳定的接口Prototype模式对于如何创建易变类的实体对象采用原型克隆的方法来做,使... 阅读全文
摘要:
模块和模块之间的耦合关系抽象部分(高层部分)变化慢,具体部分(底层部分)变化快,使用接口进行结合。设计模式没有好与坏只有适用与不适用依赖倒置面向接口编程,不要面向实例大自然是个松耦合高手应用场景,某个对象的具体实现由于需求的变化,经常面临剧烈的变化,但它却拥有比较稳定的接口。主逻辑指构造成本高,主流程封装变化点我要一个苹果->接口,基本不变具体的苹果就是实现细节了,颜色,口感等多个实例... 阅读全文
摘要:
OO的优点就是方便日后的变化,见效由变化所引起的系统的变化的影响,封装这种变化。但在单一简单系统中优势不明显,反而效率低。动态的看,在需求的一次次变动时才能看到设计模式的优势。一个复杂的对象由各个部分的子对象组成,各个部分经常变化,而组合在一起的算法却相对稳定。封装隔离这个复杂对象的各个变化的部分,从而保持不变的组合这些对象的算法的稳定。关闭修改,开放扩展Builder模式主要用于“分步... 阅读全文
摘要:
封装、继承、多态 虚函数,抽象类, 解决New的问题,实现依赖,不能应对"具体实例化类型"的变化。不变化不需要封装 静态工厂 Class Factory{ Public static Road CreateRoad() {} Public static Building CreateBuilding(){} ... } 一系列相互依赖的对象,多系列对象的构建 封装:信息隐藏,避免客户程序... 阅读全文
摘要:
OO的封装,一个实例,static method, property, construction method.三种单件的实现 Simple Singleton Class Singleton {private Singleton(); public static Getinstanse(){return new Singleton();}} Static Singl... 阅读全文
|