c++ 23种设计模式之抽象工厂模式
2013-01-23 15:31
274 查看
#include <string> #include <iostream> #include <vector> using namespace std; //c++ 23种设计模式之抽象工厂模式 // 用户抽象接口 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; }
相关文章推荐
- 23种设计模式之抽象工厂模式(创建型,2 AbstractFactory,c++实现)
- 23种设计模式C++实例之抽象工厂模式
- C++设计模式——抽象工厂模式
- c++ 23种设计模式之组合模式
- C++设计模式之抽象工厂模式(改编自C++设计模式)
- 23种设计模式之单例模式(创建型,3 Singleton,c++实现)
- 23种设计模式(3):抽象工厂模式
- 23种设计模式C++实例之原型模式
- 23种设计模式的解析与C++实现及源码打包下载
- 设计模式C++抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- 【Unity与23种设计模式】抽象工厂模式(Abstract Factory)
- c++ 设计模式之 抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式之适配器模式(结构型,3 Adapter,c++实现)
- 23种设计模式C++实例之责任链模式
- 设计模式--抽象工厂模式(C++实现)
- 23种设计模式——抽象工厂模式