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();
    }

  • 相关阅读:
    分布式事务--AT+TCC
    Java基础面试题
    JVM问题
    集合问题
    线程问题
    微服务面试题
    【入职准备】安装STS以及整合maven
    事务----四大特性
    html小知识--创建表单
    通过css润色html表格
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1872059.html
Copyright © 2011-2022 走看看