设计模式学习-----抽象工厂模式
来源:互联网 发布:usb6009数据采集卡 编辑:程序博客网 时间:2024/05/20 20:56
抽象工厂模式
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
- 设计模式学习--抽象工厂
- 设计模式学习----抽象工厂模式
- 设计模式之抽象工厂模式学习
- 设计模式学习-----抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- GoF设计模式学习-抽象工厂模式
- 设计模式学习—抽象工厂模式
- 学习设计模式之“抽象工厂模式”
- 设计模式学习笔记--抽象工厂模式
- 设计模式学习--抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- 设计模式实例学习-抽象工厂模式
- 设计模式深入学习-抽象工厂模式
- 设计模式学习--抽象工厂模式
- 【设计模式学习】抽象工厂模式
- 【设计模式学习】抽象工厂模式
- 设计模式学习:抽象工厂模式
- 设计模式学习---第九节:抽象工厂模式
- C#学习之接口
- Ant build.xml的创建(三)
- reviewboard的LDAP认证的配置
- js二级联动的实现
- spring常用的标签@Repository,@controller,@service
- 设计模式学习-----抽象工厂模式
- Apache--SSI 服务器端包含
- shell ls结果赋给变量
- String.split()方法的详解
- 计算给定两个日期间工作日
- jdk
- postgresql 不错的全文检索资料
- 企业实时通信解决方案
- jQuery封装的获取Url中的Get参数