Design Pattern
文章平均质量分 83
shenlan282
这个作者很懒,什么都没留下…
展开
-
<Head First 设计模式>:观察者模式--Weather
#ifndef __WEATHER_H__ #define __WEATHER_H__ #include #include using namespace std; class DisplayElement { public: DisplayElement(){} virtual ~DisplayElement(){} virtual void display(){} }; clas原创 2015-04-18 13:32:52 · 552 阅读 · 0 评论 -
<Head First 设计模式>:代理模式:proxy
#ifndef __PROXY_H__ #define __PROXY_H__ class Subject { public: Subject(){} virtual ~Subject(){} virtual void request(){} }; class RealSubject : public Subject { public: RealSubject(){} virtual原创 2015-05-19 21:25:35 · 514 阅读 · 0 评论 -
<Head First 设计模式>:复合模式:duck
#ifndef __QUAKEABLE_H__ #define __QUAKEABLE_H__ #include #include using namespace std; class QuackObservable; class Observer { public: Observer(){} virtual~Observer(){} virtual void update(QuackO原创 2015-05-20 22:14:23 · 923 阅读 · 0 评论 -
<Head First 设计模式>:状态模式:GumballMachine
#ifndef __STATE_H__ #define __STATE_H__ #include #include using namespace std; class GumballMachine; class State { public: State(); virtual ~State(); virtual void insertQuarter(); virtual void原创 2015-05-06 23:24:52 · 878 阅读 · 0 评论 -
关于A中用到B, B中用到A的问题
//A.h #ifndef AH #define AH class B; class A { public: B* b; void setB(); ~A(); }; #endif //B.h #ifndef BH #define BH #include "A.h" class B { public: A a; void haha() {原创 2015-05-06 23:21:00 · 587 阅读 · 0 评论 -
<Head First 设计模式>:组合模式:Component
#ifndef __COMPONENT_H__ #define __COMPONENT_H__ #include #include using namespace std; class Component { public: virtual ~Component(){} virtual void add(Component *c) {} virtual void remove(Compo原创 2015-05-04 21:54:52 · 588 阅读 · 0 评论 -
<Head First 设计模式>:模板方法模式:Beverage
#ifndef __COFFINEBEVERAGE_H__ #define __COFFINEBEVERAGE_H__ #include using namespace std; class Beverage { public: Beverage(){} virtual ~Beverage(){} void Prepare() { BoilWater(); Brew(); P原创 2015-04-28 21:25:16 · 600 阅读 · 0 评论 -
<Head First 设计模式>:适配器模式:Adapter
#ifndef __ADAPTER_H__ #define __ADAPTER_H__ #include using namespace std; class Duck { public: Duck(){} virtual ~Duck(){} virtual void Quack() { cout << "Duck Quack" << endl; } virtual void F原创 2015-04-27 21:50:55 · 696 阅读 · 0 评论 -
<Head First 设计模式>:迭代器模式1:Iterator
//今天一口气把这一章前半部分的iterator例子的所有代码写完,涉及到了不少指针的内容,竟然一个bug都没。。。。 //Iterator与Menu之间应该不是has a的关系,先这样着吧。 #ifndef __MENUITEM_H__ #define __MENUITEM_H__ #include #include #include using namespace std; clas原创 2015-04-29 23:07:47 · 626 阅读 · 0 评论 -
<Head First 设计模式>:工厂模式2:抽象工厂模式--Pizza
#ifndef __INGREDIENT_H__ #define __INGREDIENT_H__ #include using namespace std; class Dough { }; class ThinDough:public Dough { }; class BigDough :public Dough { }; class CaDough :public Dough {原创 2015-04-21 23:27:01 · 735 阅读 · 0 评论 -
<Head First 设计模式>:命令模式:Command
#ifndef __COMMAND_H__ #define __COMMAND_H__ #include #include "Equipment.h" class Command { public: Command(){} virtual ~Command(){} virtual void Execute(){} virtual void Undo(){} }; class NoCo原创 2015-04-26 01:49:51 · 542 阅读 · 0 评论 -
<Head First 设计模式>:装饰者模式--Beverage
#ifndef __BEVERAGE_H__ #define __BEVERAGE_H__ #include using namespace std; class Beverage { public: Beverage() { } virtual ~Beverage(){} virtual string getDescripthion() { return "Unknown B原创 2015-04-19 14:29:25 · 523 阅读 · 0 评论 -
<Head First 设计模式>:单件模式:Singleton
#ifndef __SINGLETON_H__ #define __SINGLETON_H__ class Singleton { private: static Singleton* instance; Singleton(){} public: static Singleton* getInstance() { if (instance == NULL) { instan原创 2015-04-22 19:50:35 · 574 阅读 · 0 评论 -
<Head First 设计模式>:策略模式--Duck
策略模式原创 2015-04-16 21:04:58 · 737 阅读 · 0 评论 -
观察者模式与变种
原始观察者模式: 增加一个Message类,用来传递消息 外部发送一个message给 [被观察者],[被观察者]发这个message发送给[观察者] 代码如下: #include #include using namespace std; class Message; class Observer; class Subject { public: virtua原创 2018-01-10 11:23:39 · 557 阅读 · 0 评论