- 博客(20)
- 资源 (9)
- 收藏
- 关注
原创 二十一、中介者模式
中介者模式(Mediator)用一个中介对象来封装一系列的对象交互。中介者使个对象不需要现实的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。//Colleague.h#ifndef _COLLEAGUE_H_#define _COLLEAGUE_H_#include using namespace std;class Mediator;class Colleague
2012-05-31 18:40:03 331
原创 二十、职责链模式
职责链模式(Chain of Responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。//Handler.h#ifndef _HANDLER_H_#define _HANDLER_H_#include using namespace std;class Handl
2012-05-31 09:39:34 850
原创 十九、命令模式
命令模式(Command) 将一个请求封装为一个对象,从而是你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。//Command.h/*Command类用来声明执行操作的接口*/#ifndef _COMMAND_H_#define _COMMAND_H_#include "Receiver.h"class Command{protected:
2012-05-30 16:09:31 331
原创 十八、桥接模式
桥接模式(Bridge)将抽象部分与它的实现部分分离,使他们都可以独立的变化。//Implementor.h#ifndef _IMPLEMENTOT_H_#define _IMPLEMENTOT_H_#include using namespace std;class Implementor{public: virtual void OperationImp()=0;};
2012-05-30 10:24:11 2210
原创 十七、单例模式
单例模式(Singleton) 保证一个类仅有一个实例,并提供一个访问它的全局访问点。//Singleton.h#ifndef _SINGLETON_H_#define _SINGLETON_H_class Singleton{private: Singleton(){}; static Singleton* _instance;public: static Single
2012-05-29 18:20:06 411
原创 十五、组合模式
组合模式(Composite)将对象组合成树形结构以表示“部分--整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。//Composite.h#ifndef _COMPOSITE_H_#define _COMPOSITE_H_#include #include #include using namespace std;class Component{pr
2012-05-29 16:25:48 300
原创 十四、备忘录模式
备忘录(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。//Originator.h/*Originator(发起人)负责创建一个备忘录Memento,用以记录当前时刻他的内部状态并可以使用备忘录恢复内部状态。*/#ifndef _ORTIGINATOR_H_#define _ORTIGINATO
2012-05-29 09:48:15 304
原创 十三、适配器模式
适配器模式(Adapter)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。//Adapter.h#ifndef _ADAPTER_H_#define _ADAPTER_H_#include using namespace std;class Adaptee;class Tatget{public: vi
2012-05-28 19:49:08 333
原创 十二、状态模式
状态模式(State) 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。//state.h#ifndef _STATE_H_#define _STATE_H_class Context;class State{public: virtual void Handle(Context* context)=0;};class ConcreteStat
2012-05-28 19:19:26 351
原创 十一、抽象工厂模式
抽象工厂模式(Abstract Factory)提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。AbstractFactory模式是为了创建一组(有多类)相关或依赖的对象提供创建接口,二Factory模式是为了一类对象提供创建接口或延迟对象的创建刀子类中实现。//Product.h#ifndef _PRODUCT_H_#define _PRODUCT_H_u
2012-05-27 19:20:07 769
原创 十、观察者模式
观察者模式(Observer)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。这个主题对象在状态发生变化时,会通知所有观察着对象,使他们能够自动更新自己。//Subject.h#ifndef _SUBJECT_H_#define _SUBJECT_H_#include #include #include "Observer.h"class Subject{p
2012-05-23 16:56:17 313
原创 九、建造者模式
建造者模式(Builder)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。//Product.h#ifndef _PRODUCT_H_#define _PRODUCT_H_#include #include #include using namespace std;class CProduct{public: // 添加产品部件
2012-05-23 09:47:26 405
原创 八、外观模式
外观模式(Facade)为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。//Facade.h#ifndef _FACADE_H#define _FACADE_Hclass SubSystemOne{public: void Operation();};class SubSystemTwo{public: void
2012-05-22 16:46:11 312
原创 七、模版方法模式
模版方式模式(Template Method mode)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法似的子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。换句话说,就是当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们可以通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变形为的纠缠。//Templ
2012-05-22 15:45:14 334
原创 六、原型模式
原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。//Prototype.h#ifndef _PROTOTYPE_H#define _PROTOTYPE_Hclass Prototype{public: virtual ~Prototype(); virtual Prototype* Clone() const = 0; Proto
2012-05-22 10:20:19 422
原创 五、工厂模式
工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。//Operation.h#ifndef _OPERATION_H_#define _OPERATION_H_class Operation{public: virtual double GetResult()=0;public: double
2012-05-21 20:43:06 374
原创 四、代理模式
代理模式(Proxy),为其他对象提供一种代理一控制对这个对象的访问。//Proxy.h#ifndef _PROXY_H#define _PROXY_H/*Subject定义了ReadSubject和Proxy的公用接口这也就在任何使用RealSubject的地方都可以使用Proxy*/class Subject{public: Subject(); virtual ~S
2012-05-18 15:54:27 239
原创 三、装饰模式
装饰模式(Decorator),动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。//Decorator.h#ifndef _DECORATOR_H#define _DECORATOR_H#include /*Component 类定义一个对象接口,可以给这些对象动态的添加指责*/class Component{public: Comp
2012-05-18 11:02:31 239
原创 二、策略模式
//Strategy.h#ifndef _STRATEGY_H#define _STRATEGY_Hclass Strategy{public: Strategy(); virtual ~Strategy(); virtual void AlgorithmInterface()=0;};class ConcreteStrategyA :public Strategy{pub
2012-05-16 16:40:43 253
原创 一、简单工厂模式
//Operation.h#ifndef _OPERATION_H_#define _OPERATION_H_class Operation{public: double _numberA; double _numberB; Operation(); virtual ~Operation(); virtual double GetResult()=0;};class Ope
2012-05-16 15:47:38 761 1
各类软件开发学习资料下载地址(精)
2009-08-02
各类软件开发学习资料下载地址(精)
2009-08-02
出租车计费系统 数字逻辑与数字电路
2009-08-02
数据结构之表达式求值
2009-07-17
c++ 学籍管理系统
2009-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人