Java 面向对象的接口应用示例

一、简介

Java 的接口并不是孤立地应用的,即用接口订立标准,其他类实现接口,接口往往和多态结合应用的时候才更有价值。接口和多态往往都很抽象,这里用一个文件的代码示例一下,Java 调用数据库的增删改查时,对 MySQL 和 Oracle 不同数据库的操作。

使用一套数据库的操作,实现对不同数据库的操作。

二、代码如下示例:

package cn.xxxxxx.content;

/**
  * @ClassName: InterfaceTest.java
  * @Description: 接口的示例应用代码
  *  
  *  说明:
  *    本文件包含了多个类,实际开发中一个类是一个文件,
  *    本内容模拟了 Java 调用 MySQL 和 Oracle 等不同数据库的通用接口方法,
  *    这段代码包含了 Java 面向对象的饿汉式单例模式、接口、多态等的运用。
 */

//1.模拟 java 应用程序调用数据库
public class InterfaceTest {
    
    private static Jdbc conn;      // 数据库连接对象
    private static Mysql mysql;    // MySQL 驱动对象
    private static Oracle oracle;  // Oracle 驱动对象
    
    public static void main(String[] args) {
        
        //(一)对 MySQL 数据库进行操作
        
        //调用 MySQL 数据库执行添加操作
        conn.insert(mysql);
        
        //调用 MySQL 数据库执行删除操作
        conn.delete(mysql);
        
        //调用 MySQL 数据库执行修改操作
        conn.update(mysql);
        
        //调用 MySQL 数据库执行查询操作
        conn.select(mysql);
        
        System.out.println("*********************");
        
        //(二)对 Oracle 数据库进行操作
        
        //调用 Oracle 数据库执行添加操作
        conn.insert(oracle);
        
        //调用 Oracle 数据库执行删除操作
        conn.delete(oracle);
        
        //调用 Oracle 数据库执行修改操作
        conn.update(oracle);
        
        //调用 Oracle 数据库执行查询操作
        conn.select(oracle);
    }

    static{
        conn = Conn.getJdbcConnect();
        mysql = Conn.getMysql();
        oracle = Conn.getOracle();
    }

}

//2.饿汉式单例模式连接类,线程安全
class Conn{
        private static final Jdbc jdbcConnect;
        private static final Mysql mysql;
        private static final Oracle oracle;
        
        static{
            jdbcConnect = new Jdbc();
            mysql = new Mysql();
            oracle = new Oracle();
        }

        public static Jdbc getJdbcConnect() {
            return jdbcConnect;
        }

        public static Mysql getMysql() {
            return mysql;
        }

        public static Oracle getOracle() {
            return oracle;
        }

}

// 3.模拟 Java 的数据库连接类
class Jdbc{
    
    // 多态:JdbcStandard obj = new Mysql(); 或者:JdbcStandard obj = new Oracle();
    public void insert(JdbcStandard obj) { 
        obj.insert();
    }
    
    public void delete(JdbcStandard obj) {
        obj.delete();
    }
    
    public void update(JdbcStandard obj) {
        obj.update();
    }
    
    public void select(JdbcStandard obj) {
        obj.select();
    }
}

// 4.这是接口 interface,模拟数据库连接的标准
interface JdbcStandard{
    public  static final int MAX_CONNEXT = 1000;  //数据库最大连接数
    public abstract void insert();    //数据添加
    public abstract void delete();   //数据删除
    public abstract void update();  //数据修改
    public abstract void select();    //数据查询
}

// 5.接口实现(一):模拟 MySQL 数据库驱动类
class Mysql implements JdbcStandard{

    @Override
    public void insert() {
        System.out.println("MySQL添加了一条数据!");
        System.out.println("MySQL数据库最大连接数:" + Mysql.MAX_CONNEXT);
    }

    @Override
    public void delete() {
        System.out.println("MySQL删除了一条数据!");
    }

    @Override
    public void update() {
        System.out.println("MySQL修改了一条数据!");
    }

    @Override
    public void select() {
        System.out.println("MySQL查询了一条数据!");
    }
    
}

// 6.接口实现(二):模拟 Oracle 数据库驱动类
class Oracle implements JdbcStandard{

    @Override
    public void insert() {
        System.out.println("Oracle添加了一条数据!");
        System.out.println("Oracle数据库最大连接数:" + Oracle.MAX_CONNEXT);
    }

    @Override
    public void delete() {
        System.out.println("Oracle删除了一条数据!");
    }

    @Override
    public void update() {
        System.out.println("Oracle修改了一条数据!");
    }

    @Override
    public void select() {
        System.out.println("Oracle查询了一条数据!");
    }
    
}

三、代码执行后的效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰雪青松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值