设计模式
结合UML图,编程实现常见的设计模式。
Dark-Rich
Let the code into my blood
展开
-
Adapter Pattern(适配器模式)
/*Adapter.h*/ #ifndef ADAPTER_H #define ADAPTER_Hclass Target { public: Target(); virtual ~Target(); virtual void Request(); protected: private: };class Adaptee { public: Adaptee();原创 2015-05-11 11:36:33 · 841 阅读 · 0 评论 -
Prototype Pattern(原型模式)
/*Prototype.h*/ #ifndef PROTOTYPE_H #define PROTOTYPE_Hclass Prototype { public: virtual ~Prototype(); virtual Prototype *Clone() const=0; protected: Prototype(); private: };class ConcreteP原创 2015-05-06 17:02:32 · 1063 阅读 · 1 评论 -
Decorator Pattern(装饰模式)
/*Decorator.h*/ #ifndef DECORATOR #define DECORATORclass Component { public: virtual ~Component(); virtual void Operation(); protected: Component(); private: };class ConcreteComponent:publi原创 2015-05-11 15:32:43 · 670 阅读 · 0 评论 -
Builder Pattern(建造者模式)
/*Product.h*/ #ifndef PRODUCT_H #define PRODUCT_Hclass Product { public: Product(); ~Product(); void ProducePart(); protected: private: };class ProductPart() { public: ProductPart();原创 2015-05-06 11:24:41 · 869 阅读 · 1 评论 -
Bridge Pattern(桥接模式)
/*Abstraction.h*/ #ifndef ABSTRACTION_H #define ABSTRACTION_Hclass AbstractionImp; class Abstraction { public: virtual ~Abstraction(); virtual void Operation()=0; protected: Abstraction();原创 2015-05-08 13:01:06 · 1026 阅读 · 0 评论 -
Factory Pattern(工厂模式)
/*Product.h*/ #ifndef PRODUCT_H #define PRODUCT_Hclass Product { public: virtual ~Product()=0; protected: Product(); private: };class ConcreteProduct:public Product { public: ~ConcreteProdu原创 2015-05-11 15:43:06 · 465 阅读 · 0 评论 -
Singleton Pattern(单例模式)
/*Singleton.h*/ #ifndef SINGLETON_H #define SINGLETON_H class Singleton { public: static Singleton *Instance(); protected: Singleton(); private: static Singleton *instance_; }; #endif /*Singlet原创 2015-05-03 12:24:08 · 615 阅读 · 0 评论 -
AbstractFactory Pattern(抽象工厂模式)
AbstractFactory Pattern(C++实现) /*Product.h*/ #ifndef PRODUCT_H #define PRODUCT_H class AbstractProductA { public: virtual ~AbstractProductA(); protected: AbstractProductA(); private: }; class Abst原创 2015-05-02 20:53:27 · 777 阅读 · 0 评论 -
Adapter模式实例
Adapter模式C++实现: #include #include using namespace std; typedef char String[30]; struct Point { int x; int y; }; class Car { private: String name; double speed; public: double getSpeed() {原创 2014-09-19 20:34:03 · 484 阅读 · 0 评论 -
Strategy模式实例
策略设计模式C++实现: #include <iostream> using namespace std; #define GIF 1 #define JPEG 2 //Interface class ImageSaver { public: virtual void save()=0; }; class GIFSaver:public ImageSaver { pub...原创 2014-09-17 16:58:48 · 501 阅读 · 0 评论 -
Simple Factory模式实例
关于Simple Factory模式的实例C++实现: #include using namespace std; class Car { public: virtual char *getInfo()=0; }; class BMW:public Car { char *getInfo() { return "BMW"; } }; class Benz:public Ca原创 2014-09-17 15:37:15 · 408 阅读 · 0 评论