实验 24:模板方法模式

实验 24:模板方法模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解模板方法模式的动机,掌握该模式的结构;

2、能够利用模板方法模式解决实际问题。

 
   

 


[实验任务一]:数据库连接

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

实验要求:

1.提交源代码;

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

}

运行结果:

 

2.注意编程规范。

posted @ 2022-11-18 15:13  萧贾jzm  阅读(67)  评论(0编辑  收藏  举报
//歌单id