#include<iostream> 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"<<endl; } User *GetUser(int id) { cout<<"sql server sheet user insert"<<endl; return NULL; } }; class AccessUser:public IUser { public: void Insert(User *user) { cout<<"access sheet user insert"<<endl; } User *GetUser(int id) { cout<<"access sheet user insert"<<endl; 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"<<endl; } Department *GetDepartment(int id) { cout<<"sql server sheet Department insert"<<endl; return NULL; } }; class AccessDepartment:public IDepartment { public: void Insert(Department *user) { cout<<"access sheet Department insert"<<endl; } Department *GetDepartment(int id) { cout<<"access sheet Department insert"<<endl; 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; }
