实验 24:模板方法模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解模板方法模式的动机,掌握该模式的结构;
2、能够利用模板方法模式解决实际问题。
[实验任务一]:数据库连接
对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对于不同类型的数据库(如SQL Server和Oracle),其操作步骤都一致,只是连接数据库connDB()方法不同,现使用模板方法模式对其进行设计。
实验要求:
1.提交源代码;
JAVA
package rjsj.no24;
public abstract class Operator {
public abstract void
connDB();
public void
openDB(){
System.out.println("---打开数据库---");
}
public void useDB(){
System.out.println("---使用数据库---");
}
public void
closeDB(){
System.out.println("---关闭数据库---");
}
public void
display(){
this.connDB();
this.openDB();
this.useDB();
this.closeDB();
}
}
package rjsj.no24;
public class Oracle extends Operator{
@Override
public void
connDB() {
System.out.println("连接---Oracle---数据库");
}
}
package rjsj.no24;
public class SQLServer extends Operator{
@Override
public void
connDB() {
System.out.println("连接---SQLServer---数据库");
}
}
package rjsj.no24;
public class Client {
public static void
main(String[] args) {
Operator
dbOperator;
dbOperator = new
SQLServer();
dbOperator.display();
System.out.println("**************************************************");
dbOperator = new
Oracle();
dbOperator.display();
}
}
C++
#include<iostream>
using namespace std;
class Operator {
public:
virtual void conn()=0;
void open() {
cout<<"打开数据库"<<endl;
}
void use() {
cout<<"使用数据库"<<endl;
}
void close() {
cout<<"关闭数据库"<<endl;
}
void display() {
this->conn();
this->open();
this->use();
this->close();
}
};
class Oracle: public Operator{
public:
void conn() {
cout<<"连接Oracle"<<endl;
}
};
class SQLServer:public Operator{
public:
void conn() {
cout<<"连接SQLServer"<<endl;
}
};
int main(){
Operator *db;
db=new Oracle();
db->display();
cout<<"******************************"<<endl;
db=new SQLServer();
db->display();
}
运行结果:
2.注意编程规范。