设计模式学习-----抽象工厂模式
2012-12-11 14:18
260 查看
抽象工厂模式
GOOD:定义了一个创建一系列相关或相互依赖的接口,而无需指定它们的具体类。
用于交换产品系列,如ACCESS->SQLSERVER;
产品的具体类名被具体工厂的实现分离
GOOD:定义了一个创建一系列相关或相互依赖的接口,而无需指定它们的具体类。
用于交换产品系列,如ACCESS->SQLSERVER;
产品的具体类名被具体工厂的实现分离
#include <string> #include <iostream> #include <vector> using namespace std; //用户抽象接口 class IUser { public : virtual void GetUser()=0; virtual void InsertUser()=0; }; //部门抽象接口 class IDepartment { public: virtual void GetDepartment()=0; virtual void InsertDepartment()=0; }; //ACCESS用户 class CAccessUser : public IUser { public: virtual void GetUser() { cout<<"Access GetUser"<<endl; } virtual void InsertUser() { cout<<"Access InsertUser"<<endl; } }; //ACCESS部门 class CAccessDepartment : public IDepartment { public: virtual void GetDepartment() { cout<<"Access GetDepartment"<<endl; } virtual void InsertDepartment() { cout<<"Access InsertDepartment"<<endl; } }; //SQL用户 class CSqlUser : public IUser { public: virtual void GetUser() { cout<<"Sql User"<<endl; } virtual void InsertUser() { cout<<"Sql User"<<endl; } }; //SQL部门类 class CSqlDepartment: public IDepartment { public: virtual void GetDepartment() { cout<<"sql getDepartment"<<endl; } virtual void InsertDepartment() { cout<<"sql insertdepartment"<<endl; } }; //抽象工厂 class IFactory { public: virtual IUser* CreateUser()=0; virtual IDepartment* CreateDepartment()=0; }; //ACCESS工厂 class AccessFactory : public IFactory { public: virtual IUser* CreateUser() { return new CAccessUser(); } virtual IDepartment* CreateDepartment() { return new CAccessDepartment(); } }; //SQL工厂 class SqlFactory : public IFactory { public: virtual IUser* CreateUser() { return new CSqlUser(); } virtual IDepartment* CreateDepartment() { return new CSqlDepartment(); } }; //客户端: int main() { IFactory* factory= new SqlFactory(); IUser* user=factory->CreateUser(); IDepartment* depart = factory->CreateDepartment(); user->GetUser(); depart->GetDepartment(); return 0; } //转载请注明,文章来自:http://blog.csdn.net/windows_nt
相关文章推荐
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式 (转)
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式
- 【原】从头学习设计模式(四)——抽象工厂模式
- 设计模式学习03—抽象工厂模式
- 设计模式学习笔记(六):抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 设计模式学习----抽象工厂模式
- 设计模式学习笔记--抽象工厂模式
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式
- 学习TerryLee 的设计模式:抽象工厂模式(附源码)_AX
- 设计模式学习笔记(三)——Abstract Factory抽象工厂模式
- java/android 设计模式学习笔记(4)---抽象工厂模式
- 23种设计模式学习之东拼西凑-------抽象工厂模式
- 设计模式学习(C++实现)2——抽象工厂模式
- 设计模式学习--抽象工厂模式
- 学习设计模式之二:抽象工厂模式(Abstract Factory)
- 设计模式学习笔记(抽象工厂模式)
- 设计模式学习--------8.抽象工厂模式学习
- 【设计模式】学习笔记6:抽象工厂模式(Abstract Factory)
- 设计模式学习总结1 - 创建型1 - Abstract Factory抽象工厂模式