设计模式之建造者模式
摘要:Builder-- 建造者模式: 将一个复杂对象的构建和表示分离, 使得同样的构建过程可以有不同的表示。 从定义可以看出, builder模式有两个重要的点, 1. 构建与表示分离 2. 同样的构建过程有不同的表示。 这里可以看出,对于builder模式来说, 构建过程是相同的。而在构建过程中,根据
阅读全文
设计模式之适配器模式
摘要:定义:( Adapter) 将一个类的接口转换为客户希望的另一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作 例子: 适配器模式比较容易理解, 现实生活中也有许多适配器的模型, 比如之前耳机插口有粗有细,然后就出现了一种 粗细口转化的工具 这种工具我们就可以看作为适
阅读全文
设计模式之状态模式
摘要:状态模式:state 定义:当一个对象内部状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 例子: 设计模式一书中,举了TCP状态转移的例子。比如tcp连接在listen状态收到syn,并发送syn+ack时,进入syn receive 状态。当在syn receive状态收到ack 则进
阅读全文
设计模式之外观模式
摘要:外观模式: 为子系统的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易的使用。 结构图: 通过外观模式, 可以大大减少客户端和子系统之间的耦合,使得复杂的子系统更加易用。
阅读全文
设计模式之模板方法模式
摘要:模板方法模式:定义操作中的算法的骨架,而将一些具体的步骤延迟到子类中去。 模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 结构图: AbstractClass 是一个抽象类,定义并实现了一个模板方法,该方法一般给出顶级的逻辑骨架,而具体的逻辑组成则在相应的抽象 操作中
阅读全文
设计模式之代理模式
摘要:意图:为其他对象提供一种代理以控制对这个对象的访问。 适用性: 1. 远程代理:为一个对象在不同的地址空间提供局部代表。 (ps: 这点不理解) 2. 虚代理: 根据需要创建开销很大的对象。 如在打开一篇文档时,如果文档中有很大的图片,在一开始的时候,并不需要加载该图片,只有当视图切换下去时,图片才
阅读全文
设计模式之装饰模式
摘要:先看一个例子: (来自大话设计模式) 设计模式比较晦涩难懂, 个人感觉大话设计模式上的例子比较切近实际, 可以结合大话设计模式和gof一起看. 例子: 一个给人装饰衣物的系统, 类似qq秀的展示,可以有不同的穿衣风格.如 穿裤衩, 西装,打领带,皮靴,运动鞋等,不同风格的组合. 如果定义人的子类的话
阅读全文
设计模式之组合模式
摘要:题外话:昨天看到了一句话, 面向过程编程和面向对象编程。 当dosomething的方法类似时,使用面向对象的多态似乎更加方便些。如果需要增加新的类型,也更加方便。但是如果需要对dosomething修改时,面向对象需要修改所有的子类,而面向过程只需要修改一个函数。因此,在考虑具体使用哪种时,根据自
阅读全文
设计模式之bridge模式
摘要:写在之前:设计模式的意义是解决 实际的设计问题,之所以不好理解是因为没有亲身的经历,所以要不停的学习实践思考。 bridge翻译为桥接。 既然为桥接 则一定有桥接的两个对象。本文打算从三个方面来分析桥接模式。 1.桥接的两个对象是什么? 2.怎么样进行桥接 3.为什么要使用桥接模式。 1.桥接的两个
阅读全文