2024.12.10
设计模式二十四
软件设计 石家庄铁道大学信息学院
实验 24:模板方法模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解模板方法模式的动机,掌握该模式的结构;
2、能够利用模板方法模式解决实际问题。
[实验任务一]:数据库连接
对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对于不同类型的数据库(如SQL Server和Oracle),其操作步骤都一致,只是连接数据库connDB()方法不同,现使用模板方法模式对其进行设计。
实验要求:
1. 画出对应的类图;
2. 提交源代码;
DatabaseConnection.java
// 抽象类,定义数据库操作的模板方法
public abstract class DatabaseConnection {
// 模板方法,定义了数据库操作的步骤
public final void connectAndUseDB() {
connDB(); // 连接数据库
openDB(); // 打开数据库
useDB(); // 使用数据库
closeDB(); // 关闭数据库
}
// 连接数据库的步骤,由子类具体实现
protected abstract void connDB();
// 打开数据库的步骤,具体实现相同
private void openDB() {
System.out.println("打开数据库连接...");
}
// 使用数据库的步骤,具体实现相同
private void useDB() {
System.out.println("执行数据库操作...");
}
// 关闭数据库的步骤,具体实现相同
private void closeDB() {
System.out.println("关闭数据库连接...");
}
}
SQLServerConnection.java
// SQL Server 连接类
public class SQLServerConnection extends DatabaseConnection {
@Override
protected void connDB() {
System.out.println("连接到 SQL Server 数据库...");
}
}
OracleConnection.java
// Oracle 连接类
public class OracleConnection extends DatabaseConnection {
@Override
protected void connDB() {
System.out.println("连接到 Oracle 数据库...");
}
}
Main.java
public class Main {
public static void main(String[] args) {
// 使用 SQL Server 数据库
DatabaseConnection sqlServer = new SQLServerConnection();
sqlServer.connectAndUseDB();
System.out.println("---------------");
// 使用 Oracle 数据库
DatabaseConnection oracle = new OracleConnection();
oracle.connectAndUseDB();
}
}
3. 注意编程规范。