• 模板方法模式——C++实现


    问题描述:

    对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对于不同类型的数据库(如SQL Server和Oracle),其操作步骤都一致,只是连接数据库connDB()方法不同,现使用模板方法模式对其进行设计。

    类图:

    C++代码:

    #include<iostream>
    using namespace std;
    //抽象类
    class DBOperator{
    public:
    	virtual void connDB()=0;
    	void openDB(){
    		cout<<"打开数据库"<<endl;
    	}
    	void useDB(){
    		cout<<"使用数据库"<<endl;
    	}
    	void closeDB(){
    		cout<<"关闭数据库"<<endl;
    	}
    	void process(){
    		connDB();
    		openDB();
    		useDB();
    		closeDB();
    	}
    };
    //具体子类
    class SQLServerDB:public DBOperator{
    public:
    	void connDB(){
    		cout<<"连接SQL Server数据库"<<endl;
    	}
    };
    //具体子类
    class OracleDB:public DBOperator{
    public:
    	void connDB(){
    		cout<<"连接Oracle数据库"<<endl;
    	}
    };
    //测试函数
    int main(){
    	int i;
    	DBOperator *db=NULL;
    	cout<<"请选择:1、SQL Server\t   2、Oracle"<<endl;
    	cin>>i;
    	if(i==1){
    		db=new SQLServerDB();
    	}else if(i==2){
    		db=new OracleDB();
    	}else{
    		cout<<"输入有误!"<<endl;
    	}
    	db->process();
    	delete db;
    }
    

      

    运行结果:

     

  • 相关阅读:
    【Hello CC.NET】巧用模板简化配置
    【Hello CC.NET】自动化发布时 Web.config 文件维护
    Hello Jexus
    【Hello CC.NET】CC.NET 实现自动化集成
    SSE和WebSocket的用法和比较
    利用canvas实现鼠标跟随效果
    使用es6制作简单数独游戏
    ppt学习(3)
    ppt学习(2)
    ppt学习(1)
  • 原文地址:https://www.cnblogs.com/znjy/p/15636108.html
Copyright © 2020-2023  润新知