设计模式
kanguolaikanguolaik
2013.08.07 今天是个好日子
展开
-
设计模式5:单例模式【创建型】
#include using namespace std;//class CSinglton{public: static CSinglton* GetInstance() { if(NULL == m_pInstance) m_pInstance = new CSinglton(); return m_pInstance; } static void DoWo原创 2012-12-16 17:54:43 · 471 阅读 · 0 评论 -
设计模式3:抽象工厂模式【创建型】
#include <iostream>using namespace std;//struct ISingleCore{public: virtual ~ISingleCore() { } virtual void Produce() = 0;};class CSingleCoreA : public ISingleCore{public: virtua...原创 2012-12-16 17:10:31 · 510 阅读 · 0 评论 -
设计模式10:外观模式【结构型】
#include #include using namespace std;//class CScanner{public: void Scan() { cout<<"词法分析"<<endl; }};class CParse{public: void Parse() { cout<<"语法分析"<<endl; }};class CGenMidCode{publ原创 2012-12-18 19:49:19 · 663 阅读 · 0 评论 -
设计模式11:对象适配器【结构型】
#include using namespace std;//class CDeque{public: void push_front() { cout<<"CDeque push_front"<<endl; } void push_back() { cout<<"CDeque push_back"<<endl; } void pop_front() { cout<<"CDe原创 2012-12-19 17:03:34 · 552 阅读 · 0 评论 -
设计模式12:类适配器【结构型】
#include using namespace std;//class CDeque{public: void push_front() { cout<<"CDeque push_front."<<endl; } void push_back() { cout<<"CDeque push_back."<<endl; } void pop_front() { cout<<"C原创 2012-12-19 17:06:21 · 533 阅读 · 0 评论 -
设计模式15:观察者模式【行为型】
#include <iostream>#include <list>using namespace std;//struct IObserver{public: virtual ~IObserver() { } virtual void Update() = 0;};class CObserver : public IObserver{pub...原创 2012-12-19 19:54:24 · 784 阅读 · 0 评论 -
设计模式17:命令者模式【行为型】
#include <iostream>#include <list>using namespace std;//class CReceiveTV{public: void OpenTV() { cout<<"open TV."<<endl; } void ChangeTV() { cout<<"change TV."&...原创 2012-12-19 20:41:56 · 640 阅读 · 0 评论 -
设计模式18:访问者模式【行为型】
#include <iostream>#include <list>using namespace std;//struct IElement;struct IVisitor{public: virtual ~IVisitor() { } virtual void VisitFood(IElement *pElement) = 0; virtua...原创 2012-12-20 11:06:41 · 620 阅读 · 0 评论 -
设计模式21:备忘录模式【行为型】
#include #include using namespace std;//class CMemento{public: CMemento(int vitality, int attack, int defense) : m_vitality(vitality), m_attack(attack), m_defense(defense) { } CMemento& opera原创 2012-12-20 22:28:20 · 592 阅读 · 0 评论 -
设计模式22:状态模式【行为型】
#include <iostream>#include <vector>using namespace std;//struct ILight{public: virtual ~ILight() { } virtual void Switch() = 0;};class CLightOn : public ILight{public: vi...原创 2012-12-20 22:52:41 · 897 阅读 · 1 评论 -
设计模式:几种常见的设计模式
一、常见的几种设计模式1.1 单例模式1.2 工厂模式 简单工厂、工厂方法、抽象工厂1.3 代理模式1.4 适配器 类适配器、对象适配器1.5 策略模式1.6 桥接模式1.7 观察者模式1.8 命令模式参考资料: 设计模式与面向对象设计原则:http://blog.csdn原创 2013-09-13 15:26:16 · 916 阅读 · 0 评论 -
设计模式19:职责链模式【行为型】
#include using namespace std;//struct IManager{public: IManager(IManager *pHighLevelManager) : m_pHighLevelManager(pHighLevelManager) { } virtual ~IManager() { } virtual void dealWithRequest原创 2012-12-20 14:15:03 · 625 阅读 · 0 评论 -
设计模式9:装饰模式【结构型】
#include #include using namespace std;//struct IPhone{public: IPhone() { } virtual ~IPhone() { } virtual void ShowDecorate() = 0;};class CApplePhone : public IPhone{public: CApplePhon原创 2012-12-18 19:37:58 · 701 阅读 · 0 评论 -
设计模式6:建造者模式【创建型】
#include <iostream>#include <vector>using namespace std;//class CProduct{public: CProduct() { } void Add(char *str) { m_pVec.push_back(str); } void ShowProduct() { vector&l...原创 2012-12-16 18:30:25 · 537 阅读 · 0 评论 -
设计模式8:组合模式【结构型】
#include <iostream>#include <string>#include <vector>using namespace std;//struct ICompany{public: ICompany(string name) : m_name(name) { } virtual ~ICompany() { } virtu...原创 2012-12-16 22:57:15 · 576 阅读 · 0 评论 -
设计模式16:模板方法模式【行为型】
#include #include using namespace std;//struct IResume{public: virtual ~IResume() { } virtual void SetPersonalInfo() = 0; virtual void SetEducationInfo() = 0; virtual void SetWorkInfo() =原创 2012-12-19 20:08:01 · 586 阅读 · 0 评论 -
设计模式2:工厂方法模式【创建型】
#include using namespace std;struct ISingleCore{public: virtual ~ISingleCore() { } virtual void Produce() = 0;};class CSingleCoreA : public ISingleCore{public: virtual ~CSingleCoreA() {原创 2012-12-16 17:02:49 · 524 阅读 · 0 评论 -
设计模式7:桥接模式【结构型】
#include using namespace std;//struct IOS{public: virtual ~IOS() { } virtual void InstallOS_Imp() = 0;};class CWindowsOS : public IOS{public: virtual ~CWindowsOS() { } virtual void In原创 2012-12-16 20:33:53 · 608 阅读 · 0 评论 -
设计模式14:策略模式【行为型】
#include using namespace std;//struct ITravelWay{public: virtual ~ITravelWay() { } virtual void Travel() = 0;};class CTrainWay : public ITravelWay{public: virtual ~CTrainWay() { } vir原创 2012-12-19 17:59:32 · 539 阅读 · 0 评论 -
设计模式20:中介者模式【行为型】
#include <iostream>using namespace std;//struct IMeditor;struct IPerson{public: IPerson() : m_pMeditor(NULL) { } virtual ~IPerson() { } void SetMeditor(IMeditor *pMeditor) { m_pMedi...原创 2012-12-20 22:04:08 · 643 阅读 · 0 评论 -
设计模式1:简单工厂模式【创建型】
#include using namespace std;enum CoreType{ CORE_A, CORE_B};struct ISingleCore{public: virtual ~ISingleCore() { } virtual void Produce() = 0;};class CSingleCoreA : public ISingleCore{原创 2012-12-16 16:55:24 · 592 阅读 · 0 评论 -
设计模式4:原型模式【创建型】
#include <iostream>using namespace std;//class CResume{public: CResume(const char* pName) { if(NULL == pName) { m_pName = new char[1]; m_pName[0] = '\0'; } else { m_...原创 2012-12-16 17:45:02 · 473 阅读 · 0 评论 -
面向对象设计原则:5个
一、单一职责原则(SRP--Single-Responsibility Principle) 1.1 定义 就一个类而言,应该仅有一个引起它变化的原因。 1.2 参考资料 http://www.cnblogs.com/feipeng/archive/2007/03/02/661780.html原创 2013-09-13 15:43:21 · 809 阅读 · 0 评论