- 博客(7)
- 收藏
- 关注
原创 Decorator 装饰
动态的给一个对象增加一些额外的职责。 对于增加功能来说,Decorator模式比生成子类更为灵活。使用继承是添加功能的一种有效途径,从其他类继承过来的特性可以被多个子类实例使用。但是这种方法不够灵活,用户不能控制对新功能增加的方式和时机。一种灵活的方式是将要扩展的组件对象嵌入到另外一个对象中,由这个对象负责新的功能。这个嵌入对象就是装饰。 装饰的接口与要扩展
2015-03-17 00:29:38 297
原创 Composite 组合
将对象组合成树形结构以表示 部分-整体 的层次结构。比如这样的一个场景(书上的例子): 有text、line这样的一些图元,可以组合成较大的组件。而组合后的组件又可以组合成更大的组件。一种简单的实现,是为text、line定义一些类,另外定义一些类作为这些图元的容器类。这样的问题在于,图元与容器是两类对象,但是实际上组件应当具有图元的性质。组合composite的关键就是一
2015-03-13 01:10:13 357
原创 Bridge 桥接模式
将抽象部分与实现部分分离,使得都可以独立地变化。使用原因:一个抽象可能会有多个实现,往往通过继承来协调。但是抽象部分(对现实事物的抽象)和实现部分(具体实现)会在继承时绑定,不够灵活。举例(这里使用设计模式一书中的例子):我们需要一个window类,并且需要window类在xwindow 以及pmwindow下的不同实现。我们还会需要IconWindow来展示图标,BoxW
2015-03-12 01:16:19 436
原创 适配器 Adapter
适配器: 将一个类的接口转化为客户希望的另外一个接口。使得原本由于接口不兼容而不能组合在一起工作的那些类可以一起工作。使用适配器的原因: 有的情况下,有些类不能复用的原因仅仅是接口不兼容。比如:我们有一个继承体系,父类F拥有抽象方法GetCount,返回成员个数。用户希望使用F类的GetCount接口,而又有一个类T只有方法ListMem返回所有的成员。如何才能复用类T呢?
2015-03-11 23:50:05 259
原创 Abstract Factory 抽象工厂
创建型模式抽象了实例化过程。使得系统独立于如何创建、组合和表示它的对象。类的创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。系统的增长变化会主要依赖于对象的复合而不是类的继承。Abstract Factory 抽象工厂 ---对象创建型模式提供一个创建一系列相关或者相互依赖的对象的接口,不需要指定具体的类。组成:工厂类由
2015-03-09 23:31:07 265
原创 vim ctags的使用
把vim和ctags的使用方法记录一下,免得工作环境换了,又要查。这里不介绍ctags的基本使用,说下ctags的常用的使用方法由于我们使用的是vim+ctags,由于ctags跳转时,不支持对函数的signature的判断,可能同一个函数会有很多个tag出现。极端情况下,c++中很多类如果都有一个同名的函数,跳转的时候会看到一个超大的列表。这个问题如果你有好的解决方案
2015-03-02 20:05:50 504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人