即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

设计模式—抽象工厂模式

编程语言 yinhua405 23℃ 0评论

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类


#include





using namespace std;





class User


{


    private:


        int id;


        string name;


    public:


        int GetId()


        {


            return id;


        }


        void SetId(int _id)


        {


            this->id = _id;


        }


        string GetName()


        {


            return name;


        }


        void SetName(string name)


        {


            this->name = name;


        }





};


class Department


{


    private:


        int id;


        string name;


    public:


        int GetId()


        {


            return id;


        }


        void SetId(int _id)


        {


            this->id = _id;


        }


        string GetName()


        {


            return name;


        }


        void SetName(string name)


        {


            this->name = name;


        }





};





class IUser


{


    public:





    virtual void Insert(User *user){}


    virtual User *GetUser(int id){}


};





class SqlserverUser:public IUser


{


    public:


        void Insert(User *user)


        {


            cout<<"sql server sheet user insert"<

        }


        User *GetUser(int id)


        {


            cout<<"sql server sheet user insert"<

            return NULL;


        }





};


class AccessUser:public IUser


{


    public:


        void Insert(User *user)


        {


            cout<<"access sheet user insert"<

        }


        User *GetUser(int id)


        {


            cout<<"access sheet user insert"<

            return NULL;


        }





};





class IDepartment


{


    public:


    virtual void Insert(Department *department) {}


    virtual Department *GetDepartment(int id){}





};


class SqlserverDepartment:public IDepartment


{


    public:


        void Insert(Department *user)


        {


            cout<<"sql server sheet Department insert"<

        }


        Department *GetDepartment(int id)


        {


            cout<<"sql server sheet Department insert"<

            return NULL;


        }





};


class AccessDepartment:public IDepartment


{


    public:


        void Insert(Department *user)


        {


            cout<<"access sheet Department insert"<

        }


        Department *GetDepartment(int id)


        {


            cout<<"access sheet Department insert"<

            return NULL;


        }





};





class IFactory


{


    public:


    virtual IUser *CreateUser(){}


    virtual IDepartment *CreateDepartment(){}


};





class SqlServerFactory:public IFactory


{


    public:


        IUser *CreateUser()


        {


            return new SqlserverUser();


        }


        IDepartment *CreateDepartment()


        {


            return new SqlserverDepartment();


        }


};





class AccessFactory:public IFactory


{


    public:


        IUser *CreateUser()


        {


            return new AccessUser();


        }


        IDepartment *CreateDepartment()


        {


            return new AccessDepartment();


        }


};





int main()


{


    User *user = new User();


    Department *dept = new Department();





    IFactory *fact= new AccessFactory();





    IUser *iu = fact->CreateUser();


    iu->Insert(user);


    iu->GetUser(1);





    IDepartment *id = fact->CreateDepartment();


    id->Insert(dept);


    id->GetDepartment(1);


    


    return 0;


}


转载请注明:CodingBlog » 设计模式—抽象工厂模式

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情