package Lab24_Template;

public class dbconnect {

public static abstract class Db { // 抽象模板方法
        public abstract void transact(); // 抽象类中的抽象方法,只有声明,没有具体的实现

public void openDB() {
            System.out.println("打开数据库");
        }

public void useDB() {
            System.out.println("使用数据库");
        }

public void closeDB() {
            System.out.println("关闭数据库");
        }

public void process() {
            this.transact();
            this.openDB();
            this.useDB();
            this.closeDB();
        }
    }

public static class SqlServerDB extends Db { // 具体模板方法 子类 子类必须实现父类抽象方法
        public void transact() {
            System.out.println("连接SqlServer数据库");
        }
    }

public static class OracleDB extends Db { // 具体模板方法 子类 子类必须实现父类抽象方法
        public void transact() {
            System.out.println("连接Oracle数据库");
        }
    }

public static void main(String a[]) {
        Db dbone, dbtwo;
        dbone = new SqlServerDB();
        dbtwo = new OracleDB();
        dbone.process();
        System.out.println("---------------------------------------");
        dbtwo.process();
    }

}

最新文章

  1. C++ 与OpenCV 学习笔记
  2. DIY一个高大上带提醒的计时器,简单实用,你还在等什么
  3. 第一个C语言编译器是怎样编写的?
  4. c++面试题总结(1)
  5. Java网页数据采集器[续篇-远程操作]【转载】
  6. 【CSS3】Advanced4:Advanced Colors
  7. jq改变DIV中图片的路径
  8. 纯CSS实现tab选项卡切换
  9. 可持久化Trie树初步
  10. Dijkstra算法 c语言实现
  11. Tensorflow源码解析1 -- 内核架构和源码结构
  12. Django 中文和时区设置
  13. 11、JDBC-Druid
  14. 1.RN环境搭建,创建项目,使用夜神模拟调试
  15. Mysql error 1317导致从库复制断开
  16. 软工实践第二次作业-sudoku
  17. IPython3 notebook 成功配置Python2和Python3内核(Kernel)
  18. 【Python52--爬虫1】
  19. C#知识点提炼期末复习专用
  20. 有趣的js匿名函数写法(function嵌套)

热门文章

  1. Java中的位运算符 &、|、^、~、<< 和 >>
  2. C++构造函数注意事项
  3. 进程间通信消息队列msgsnd执行:Invlid argument——万恶的经验主义
  4. java随手记 基础
  5. C语言的“隐式函数声明”违背了 “前置声明” 原则
  6. find 删除日志文件
  7. asp.net.core教程
  8. 9组-Alpha冲刺-3/6
  9. [第二章]c++学习笔记5(类型转换构造函数)
  10. SeleniumLibrary 主要关键字 基于python3