随笔分类 -  设计模式

摘要:开放封闭原则 基本描述 一个设计良好的应用程序应该做到对扩展开放,对修改封闭。换言之:当系统需要添加一个新的模块时,尽可能少地修改已有的代码(对修改封闭),通过添加新的类型(class)以增加新的功能(对扩展开放)。 举例说明 假设要开发一个二目运算类Calculater,其不考虑扩展性的设计如下: 阅读全文
posted @ 2017-05-30 17:22 会长 阅读(380) 评论(0) 推荐(0)
摘要:当多个类之间需要建立联系时,为了避免多个类之间的耦合,通过一个“中介者”类专门负责多个类之间的信息交换。现有婚姻介绍所为例:韩梅梅和李雷(有车有房,年龄稍大)都在婚介所注册了会员,韩梅梅在听了婚介所工作人员对李雷的介绍后决定约李雷见面,于是婚介所工作人员将话带到了李雷那里。代码如下:中介抽象类:[代码]继承了中介抽象类具体的婚介所类:代码Code highlighting ... 阅读全文
posted @ 2009-12-16 15:24 会长 阅读(268) 评论(0) 推荐(1)
摘要: 阅读全文
posted @ 2009-12-07 10:26 会长 阅读(187) 评论(0) 推荐(0)
摘要:有时,客户端需要面对来自不同类的、不同方法的组合调用,这会使得客户端与这些类产生较为严重的耦合。外观模式可以解决这一问题,他封装了一组方法,且仅提供一个与客户之间交互的切入点。这是不使用外观模式的类图:而使用了外观模式则:在这里,遵循了一个设计模式的原则:最少知识原则-------“只和你的密友谈话”。(HeadFirst) 阅读全文
posted @ 2009-11-27 18:16 会长 阅读(195) 评论(0) 推荐(0)
摘要:存在一种情况如下:客户端需要调用一个已经存在的A类的行为,但该类与目前使用的相关(B、C)类实现了不同的接口,为了保持统一,客户希望可以使用统一的接口。适配器模式引入了Adaper类,该类实现了与B、C类相同的接口,且封装了A类的行为,客户端可以等同的看到B、C和Adaper类。实例:设有三个人:外国人Tom(实现接口IPerson);中国人张三(实现接口IPerson):外星人Extraterr... 阅读全文
posted @ 2009-11-26 12:46 会长 阅读(205) 评论(0) 推荐(0)
摘要:为了支持命令的撤销、重做等功能,命令的使用者和执行者应该具有较低的耦合。命令模式通过将“命令”抽象化而实现了使用者和实现者之间的松耦合。ICommand:[代码]CommandOne:[代码]CommandTwo:[代码]Invoker:[代码]Clinet:[代码]结果: 阅读全文
posted @ 2009-11-22 18:29 会长 阅读(178) 评论(0) 推荐(0)
摘要:在软件系统中,可能会出现以下情况,一个产品其构建过程是稳定的,但其组成部件是不稳定的,容易发生变化。建造者者模式可以用来解决这个问题。 创建者模式  例如:组装一台娱乐用的高配置电脑和组装一台办公用的普通配置电脑,其组装过程是一样的,发生变化的是组成电脑的部件,它们来自不同的厂商、可能具有不同的性能,当然,还有不同的价格(这个也算作组成电脑部件的一个属性吧)。使用创建者模式,可以在其算法相对稳定的... 阅读全文
posted @ 2009-11-16 16:13 会长 阅读(250) 评论(0) 推荐(0)
摘要:单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。为了不至于很快忘记,这里写三个最常用的方法如下:[代码]运行一下:只有三个"ok" 阅读全文
posted @ 2009-01-05 22:46 会长 阅读(180) 评论(0) 推荐(0)
摘要:模板方法模式 阅读全文
posted @ 2009-01-02 14:15 会长 阅读(165) 评论(0) 推荐(0)
摘要:策略模式 阅读全文
posted @ 2008-12-29 22:31 会长 阅读(265) 评论(0) 推荐(0)
摘要:/* * author:zzy * time:2008-12-7 * describe: this is one simple example of proxy pattern; * when you can not invoke a subject directly (eg:remote WebService methed) or you can consider to use this pat... 阅读全文
posted @ 2008-12-07 11:05 会长 阅读(235) 评论(0) 推荐(0)
摘要:内容图解:代码:用工厂方法模式产生魔兽不同种族[代码]运行结果: 阅读全文
posted @ 2008-11-16 11:44 会长 阅读(398) 评论(0) 推荐(0)
摘要:设计模式之装饰者模式 阅读全文
posted @ 2008-11-02 14:14 会长 阅读(475) 评论(0) 推荐(0)
摘要:观察者模式 阅读全文
posted @ 2008-10-26 13:33 会长 阅读(645) 评论(2) 推荐(1)