zoukankan      html  css  js  c++  java
  • 软件设计模板方法模式

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

    运行结果:

  • 相关阅读:
    html5--6-10 CSS选择器7--伪类选择器
    html5--6-9 CSS选择器6--伪类选择器
    html5--6-8 CSS选择器5
    避开美国全球监控阴影下的问题手机,寻求新伙伴
    DMA过程分析
    混淆
    Missile:双状态DP
    Java抓取网页数据(原网页+Javascript返回数据)
    Binders 与 Window Tokens(窗体令牌)
    编程之美2013 初赛一 A
  • 原文地址:https://www.cnblogs.com/Arisf/p/15685752.html
Copyright © 2011-2022 走看看