在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。GOF在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction...
分类:
其他好文 时间:
2014-05-23 10:24:20
阅读次数:
311
访问者模式(Visitor
Pattern)是GoF提出的23种设计模式中的一种,属于行为模式。定义(源于GoF《Design
Pattern》):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必备条件,...
分类:
其他好文 时间:
2014-05-23 10:23:03
阅读次数:
220
参考资料《大话设计模式》Mediator(中介者)模式:使各个对象不需要显式的相互调用,从而使其耦合松散。using System;using
System.Collections.Generic;using System.Linq;using System.Text;namespace
ds_me...
分类:
其他好文 时间:
2014-05-23 10:13:17
阅读次数:
331
桥接模式定义:将抽象部分与它的实现部分分离,使得他们都可以独立地变化
广义来讲,桥接模式非常普遍,面向抽象编程,面向接口编程就可以看作是他的体现
从客户端的调用可以看出来,不管是要增加消息类型还是发送消息的方式,完全是件非常简单的事情,因为没有耦合,扩展起来非常轻松。
Java中的JDBC就是非常典型的桥接应用
桥接模式的本质:分离抽象和实现
桥接模式很好地提现了开闭原则OCP...
分类:
其他好文 时间:
2014-05-23 08:09:33
阅读次数:
210
继续设计模式~ 模版方法模式
老套路,先看下定义:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。
简单看下定义,模版方法定义了一个算法的步骤,并且允许子类为一个或多个步骤提供实现。定义还算清晰,下面来个例子展示下本公司的上班情况(纯属娱乐,如有雷同,请对号入座)。简单描述一下:本公司有程序猿、测试、HR、项目经理等人,下面使用...
分类:
其他好文 时间:
2014-05-22 12:15:55
阅读次数:
262
转换接口。
引入新原则: ” 最少知识“原则 作用为 外观模式
面向对象的适配器:将一个接口转换成另一个接口,以符合客户的期望。
对象适配器 与 类适配器
OO原则:(1)封装变化 (2)多用组合,少用继承 (3)针对接口编程,不针对实现编程 (4)为交互对象之间的松耦合设计而努力 (5)类应该对扩展开放,对修改关闭。(6) 依赖抽象,不要依赖具体类。(7)只和朋友交流。
...
分类:
其他好文 时间:
2014-05-22 09:22:37
阅读次数:
268
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定哪一个产品类的实例。
工厂类是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
优点:
外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。
缺点:
由于...
分类:
其他好文 时间:
2014-05-22 07:56:29
阅读次数:
166
装饰模式,是在不改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。是为已有功能动态添加更多功能的一种方式。当系统需要新功能的时候,把每个要装饰的功能放在单独的类中,并让这个类包装它所装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择的、按顺序地使用装饰功能包装对象。
装饰模式适用的场景:
需...
分类:
其他好文 时间:
2014-05-20 15:06:32
阅读次数:
228
参考资料《大话设计模式》职责链模式:using System;using
System.Collections.Generic;using System.Linq;using System.Text;namespace
ds_chainofresponsibility{ class Progr...
分类:
其他好文 时间:
2014-05-20 12:52:03
阅读次数:
328
工厂方法模式/************************************************************************设计模式工厂方法模式在简单工厂里,工厂类的职责是根据不同的输入去实例化不同的类对象(实例化不同类对象的代码是在一个工厂类中),作为客户端来说,...
分类:
其他好文 时间:
2014-05-20 08:00:33
阅读次数:
230