smuggler_2003的专栏

smuggler什么意思?走私者也。象我们这样水平不到家的程序员不就是走私者么。...

设计模式学习笔记(二十五)——Visitor访问者

二十三、Visitor(访问者)情景举例:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。代码示例:/* 被访问类的父类,注意其中虚拟函数Accept是提供给访问者的接口*/class Equipment {public:    virtu...

2007-04-29 09:02:00

阅读数:487

评论数:0

设计模式学习笔记(二十四)——Template Method模板方法

二十二、Template Method(模板方法)情景举例:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。代码示例:/* 父类*/class View {public:    void Display();    void S...

2007-04-29 09:00:00

阅读数:433

评论数:0

设计模式学习笔记(二十三)——Strategy策略

 二十一、Strategy(策略)情景举例:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。代码示例:/* 使用Strategy的类(ok,客户)*/class Composition {public:    Composition(Com...

2007-04-29 08:58:00

阅读数:500

评论数:0

设计模式学习笔记(二十二)——State状态

二十、State(状态)情景举例:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。代码示例:/* TCPOctetStream类使用了State模式,它包含一个TCPState类*/class TCPOctetStream;class TCPState; class TCP...

2007-04-29 08:55:00

阅读数:522

评论数:0

设计模式学习笔记(二十一)——Observer观察者

十九、Observer(观察者)情景举例:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。代码示例:/* 观察者的抽象父类。注意:Update是一个模板方法*/class Observer {public:    virtual ~ Obs...

2007-04-29 08:54:00

阅读数:549

评论数:0

设计模式学习笔记(二十)——Memento备忘录

十八、Memento(备忘录)情景举例:捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。代码示例:class Graphic;    // base class for graphical objects in the graphical editor...

2007-04-29 08:53:00

阅读数:484

评论数:0

设计模式学习笔记(十九)——Mediator中介者

十七、Mediator(中介者)情景举例:用一个中介对象来封装一系列的对象交互。代码示例:/* Mediator抽象父类*/class DialogDirector {public:    virtual ~DialogDirector();     virtual void ShowDialog...

2007-04-29 08:51:00

阅读数:541

评论数:0

设计模式学习笔记(十八)——Iterator迭代器

十六、Iterator(迭代器)情景举例:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。代码示例:/* List的抽象父类*/template class List {public:    List(long size = DEFAULT_LIST_CAPACITY)...

2007-04-29 08:50:00

阅读数:593

评论数:0

设计模式学习笔记(十七)——Interpreter解释器

十五、Interpreter(解释器)情景举例:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。代码示例:/* 该例子以布尔表达式的文法为例,文法如下:BooleanExp = VariableExp|Constant|OrExp|AndExp|No...

2007-04-29 08:48:00

阅读数:492

评论数:0

设计模式学习笔记(十六)——Command命令

十四、Command(命令)情景举例:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。代码示例:/* 命令的公共父类:只定义了一个Execute纯虚函数。*/class Command {public:    virtual ~Co...

2007-04-29 08:47:00

阅读数:477

评论数:0

设计模式学习笔记(十五)——Chain Of Responsibility职责链

十三、Chain Of Responsibility(职责链)情景举例:将对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。代码示例:/* 所有链上对象的抽象父类* 注意:私有成员函数中有个变量指向后继对象,并在构造函数中初始化这个对象*/typedef int Topic;con...

2007-04-29 08:46:00

阅读数:441

评论数:0

空对象——对Null的代替

出差!出差!出差!没完没了的出差!害得我blog也不能常常更新了,看样子我是要考虑换个工作了。不过出差也不是一无是处的,在出差的这段时间里终于抽空把Martin的重构看完了。对于其中空对象的用法,倒是令本人感触颇深,故一回上海就立刻记录在此。空对象,顾名思义就是什么也没有的对象。先看一段代码就明白...

2007-04-10 09:52:00

阅读数:597

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭