抽象工厂模式

 

在软件系统中,经常面临着"一些列相互依赖的对象"的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。

如何应对这种变化?如何绕过常规的对象创建方法(NEW),提供一种"封装机制"来避免客户程序和这种"多系列具体对象创建工作"的紧耦合?

 

1、如果没有应对"多系列对象构建"的需求变化,则没有必要使用抽象工厂方法。这时候,使用简单的工厂模式完全可以。

2"系列对象"指的是在某一特定的系列下的对象之间有相互依赖、或作用的关系。不同系列的对象之间不能相互依赖。

3、抽象工厂模式主要用于应对"新系列"的需求变动。其缺点在于难以因对"新对象"的需求变动。

 

// 定义抽象业务类
class IDBConnection{
};

class IDBCOmmand{
};

class IDDataReader{
};

// 定义抽象工厂类  
class dbFactory{
public:
    virtual IDBConnection * CreateDBConnection()=0;
    virtual IDBCOmmand * CreateBCOmmand()=0;
    virtual IDDataReader * CreateDataReader()=0;
};
//定义工厂类
class SQLDBFactory : public dbFactory{
    IDBConnection * CreateDBConnection(){}
    IDBCOmmand * CreateBCOmmand(){}
    IDDataReader * CreateDataReader(){}
};

 

class EmployDAO(){
    IDBFactory * m_dbfactory;
public:
    void CreateSQLDBFactory(){
        IDBConnection * connect = new m_dbfactory->CreateDBConnection(); 
        IDBCOmmand * command = new m_dbfactory->CreateBCOmmand();
        IDDataReader * reader = new m_dbfactory->CreateDataReader();
    }
}

 

posted @ 2018-12-12 21:49  osbreak  阅读(156)  评论(0编辑  收藏  举报