• 软件设计模板方法模式


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

    运行结果:

  • 相关阅读:
    项目中使用Redis的游标scan的一些小问题
    mac上使用Sequel Pro工具SSH连接数据库
    virtualbox通过Nat模式上网,宿主机与宿主机互通
    Mac系统docker初探
    QQ互联,填写回调时注意事项
    Centos中编辑php扩展库
    samba服务介绍
    bash常用功能
    vsftp服务介绍与相关实验
    shell概述与echo命令
  • 原文地址:https://www.cnblogs.com/Arisf/p/15685752.html
Copyright © 2020-2023  润新知