工厂模式Unix系统 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    工厂模式简单代码,

工厂模式Unix系统

。为了给同时讲工厂模式写的范例代码。 /***************************************** *简单工厂模式例子 * 封装一个支持多种 数据库 的访问层操作 * 利用简单工厂模式,达到客户端调用不关心后台数据库类型 * liqinglin@gmail.com 2005.7.7

    工厂模式简单代码。为了给同时讲工厂模式写的范例代码。

    /*****************************************

    *简单工厂模式例子

    * 封装一个支持多种数据库的访问层操作

    * 利用简单工厂模式,达到客户端调用不关心后台数据库类型

    * 2005.7.7

    */

    #include <iostream>

    #include

    #include

    using namespace std;

    class DbHelper{

    public:

    virtual bool createConnect() =0;

    virtual bool closeConnect() =0;

    };

    class MsDbHelper: public DbHelper{//支持MSSQL

    public:

    MsDbHelper()

    {

    cout <<"start ms sql"<

    }

    bool createConnect(){

    cout << "this is MS SQL" << endl;

    return false;

    }

    bool closeConnect(){

    return true;

    }

    };

    class MysqlDbHelper: public DbHelper{//支持MYSQL

    public:

    MysqlDbHelper()

    {

    cout <<"startmysql"<

    }

    bool createConnect(){

    cout << "this is Mysql" << endl;

    return false;

    }

    bool closeConnect(){

    return true;

    }

    };

    class Factory{

    public:

    DbHelper* creator(int flag)//flag更通用的做法是从XML配置文件中来读取

    {

    if(flag==1)

    return new MsDbHelper();

    else if(flag==2)

    return new MysqlDbHelper();

    }

    };

    void testIt(DbHelper *hd)

    {

    hd->createConnect();

    }

    int main(int argc,char **argv)

    {

    Factory fy;

    DbHelper *hd=fy.creator(2);

    testIt(hd);

    exit(0);

    }

    运行结果:

    [root@stone pattern]# ./factory

    start mysql

    this is Mysql

    原文转自:http://www.ltesting.net

最新文章