zoukankan      html  css  js  c++  java
  • (转载)C++抽象工厂模式(大话设计模式)

    #include "iostream"
    using namespace std;
    class IUser
    {public:
    virtual void fun() = 0;
    };
    class SqlUser : public IUser
    {
    public:
    void fun(){cout<<"Sql USER"<<endl;}
    };
    class AcessUser : public IUser
    {
    public:
    void fun(){cout<<"access USER"<<endl;}
    };

    class IDepartment
    {
    public:
    virtual void fun() = 0;
    };
    class sqlDepartment : public IDepartment
    {
    public:
    void fun(){cout<<"sql department"<<endl;}
    };
    class AcessDepartment : public IDepartment
    {
    public:
    void fun(){cout<<"access department"<<endl;}
    };

    class IFactroy
    {
    public:
    virtual IUser* createUser()=0;
    virtual IDepartment* createDepartment()=0;
    };
    class SQLFactroy : public IFactroy
    {
    public:
    IUser* createUser() {return new SqlUser;}
    IDepartment* createDepartment(){return new sqlDepartment;}
    };
    class AcessFactroy : public IFactroy
    {
    public:
    IUser* createUser(){return new AcessUser;}
    IDepartment* createDepartment(){return new AcessDepartment;}
    };
    //全局函数,功能创建特定产品
    IUser* pUser;
    IDepartment* pDepart;
    void create(IFactroy* p)
    {
    pDepart = p->createDepartment();
    pUser = p->createUser();
    }
    void main()
    {
    IFactroy* p = new SQLFactroy;
    create(p);
    pUser->fun();
    pDepart->fun();

    cout<<endl;

    IFactroy* p1 = new AcessFactroy;
    create(p1);
    pUser->fun();
    pDepart->fun();
    }

  • 相关阅读:
    python基础之数值类型
    第一个python学习笔记
    入学潭州科技教育学习python语言
    Python 编码规范(Google)
    Python
    博客开通
    文件、异常、文件的输入输出
    内置函数,变量的作用域,闭包及递归
    序列类型各自的方法(1)
    函数基础
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1872059.html
Copyright © 2011-2022 走看看