goback add

Éè¼ÆÄ£Ê½Ñ§Ï°-----³éÏ󹤳§Ä£Ê½

5058 µã»÷¡¤0 »ØÌû
µÆ»ð»¥Áª
Â¥Ö÷

GOOD£º¶¨ÒåÁËÒ»¸ö´´½¨Ò»ÏµÁÐÏà¹Ø»òÏ໥ÒÀÀµµÄ½Ó¿Ú£¬¶øÎÞÐèÖ¸¶¨ËüÃǵľßÌåÀà¡£


ÓÃÓÚ½»»»²úƷϵÁУ¬ÈçACCESS->SQLSERVER£»


²úÆ·µÄ¾ßÌåÀàÃû±»¾ßÌ幤³§µÄʵÏÖ·ÖÀë





[html]
#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;
}

ϲ»¶0 ÆÀ·Ö0