设计模式——模板方法模式
对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对于不同类型的数据库(如SQL Server和Oracle),其操作步骤都一致,只是连接数据库connDB()方法不同,现使用模板方法模式对其进行设计。
java实现
package template; public abstract class DBTemplate { public abstract void connDB(); public void openDB(){ System.out.println("打开数据库"); } public void useDB(){ System.out.println("使用数据库"); } public void closeDB(){ System.out.println("关闭数据库"); } public void process(){ this.connDB(); this.openDB(); this.useDB(); this.closeDB(); } }
package template; public class OracleDBOperator extends DBTemplate{ @Override public void connDB() { System.out.println("连接oracle"); } }
package template; public class SqlServerDBOperator extends DBTemplate{ @Override public void connDB() { System.out.println("连接sql server"); } }
package template; public class Client { public static void main(String[] args) { DBTemplate db1,db2; db1=new SqlServerDBOperator(); db1.process(); System.out.println("---------------"); db2=new OracleDBOperator(); db2.process(); } }
c++实现
#include<iostream> using namespace std; class DBTemplate{ public: virtual void connDB()=0; void openDB(){ cout<<"打开数据库"<<endl; } void useDB(){ cout<<"使用数据库"<<endl; } void closeDB(){ cout<<"关闭数据库"<<endl; } void process(){ this->connDB(); this->openDB(); this->useDB(); this->closeDB(); } }; class SqlServerDB:public DBTemplate{ public: void connDB(){ cout<<"连接sql server"<<endl; } }; class OracleDB:public DBTemplate{ public: void connDB(){ cout<<"连接oracle"<<endl; } }; int main() { DBTemplate *db1,*db2; db1=new SqlServerDB(); db1->process(); cout<<"-------------------"<<endl; db2=new OracleDB(); db2->process(); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署