实验 24:模板方法模式
对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了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; }