首页 > 其他分享 >模板方法模式

模板方法模式

时间:2022-11-03 16:01:20浏览次数:46  
标签:void System 模式 数据库 --- println 方法 public 模板

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

 

类图

 

 

源代码

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();
}
 

 

运行结果:

 

标签:void,System,模式,数据库,---,println,方法,public,模板
From: https://www.cnblogs.com/libin159/p/16854751.html

相关文章

  • 状态模式
    银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化。 类图  源代码Java  p......
  • 策略模式
    旅行方式的选择旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。 类图  Jav......
  • 方法覆盖
    当子类继承父类后,发现父类的方法需要修改,对该方法进行重写,这种行为叫方法覆盖。方法覆盖要求子类与父类的方法一模一样,否则就是方法重载。packageschoolworld;public......
  • vue跳转页面常用的几种方法
    vue跳转页面有好几种不同方法,下面将通过实例代码给大家介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。1、router-link跳转1.不带参数<router-lin......
  • springboot中使用职责链模式(转)
    转:https://www.51cto.com/article/720107.html一、什么是责任链模式?责任链模式(ChainofResponsibilityPattern),顾名思义,为请求者和接受者之间创建一条对象处理链路,避免......
  • 警惕工具和模式的陷阱
    目前出现了很多优秀的工具和思维模式,可以帮助我们解决很多问题.但是根据"没有银弹"原则,不存在一种工具或者模式能解决所有的问题.任何问题表现的现状都和具体的情境下发......
  • Python定义变量的方法
    什么是变量我们只要与生活中的数学做类型就可以清楚的了解什么是变量 在Python中,变量的概念基本上和初中代数的方程变量是一致的。例如,对于方程式y=x*x,x就是变量。当......
  • 静态代理模式
    前言为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处......
  • gitlab正确上传文件方法
    一.用户邮箱绑定打开电脑命令提示符首先要配置好用户名和邮箱查看用户名和邮箱gitconfiguser.namegitconfiguser.email修改用户名和邮箱gitconfig--globaluser.n......
  • 【亲测有效】有喜马拉雅VIP,XM文件转换MP3方法,批量下载VIP音频方法
    最近在听喜马拉雅小说,购买了VIP会员,但是每次打开喜马拉雅APP加载过程、查找过程什么的比较麻烦,想要下载到本地直接听。 电脑端下载的是XM加密文件,想寻求一种直接下载非......