【java】接口的作用|实例讲解java接口

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 接口作用: 解决java不能多继承,用过接口变相实现多继承。 屏蔽实现的不同的差异 接口实例 现在假如说,java想让oracle和mysql实现自己的数据源和关闭数据源,java只需要做一个接口interface出来。

接口作用:

  1. 解决java不能多继承,用过接口变相实现多继承。

  2. 屏蔽实现的不同的差异

接口实例

现在假如说,java想让oracle和mysql实现自己的数据源和关闭数据源,java只需要做一个接口interface出来。而oracle和mysql自己去实现这个接口即可。

ok 

下面先上一个组织结构,需要用到工厂模式。

img_9120553164dcf0a2bee505495b4055cb.jpg

总共三个包,分别是

  1. 接口包 com.rs.biz

  2. 工厂包com.rs.factory

  3. 实现类com.rs.impl

最后一个是测试类。


第二步,开始写接口DateBase.java。

package com.rs.biz;


import java.sql.Connection;


public interface DateBase {

      //定义两个方法

      Connection getConnection(String url,String user,String password);

      void closed();

}


第三步,写实现类

Mysql.java

--------------------------------------------------------------

package com.rs.impl;


import java.sql.Connection;


import com.rs.biz.DateBase;


public class Mysql implements DateBase {


@Override

public Connection getConnection(String url, String user, String password) {

    System.out.println("我是mysql厂商实现的返回connection");

    return null;

}


@Override

public void closed() {

System.out.println("Mysql数据库connection关闭");

}


}

--------------------------------------------------------------

Oracle.java

--------------------------------------------------------------

package com.rs.impl;


import java.sql.Connection;


import com.rs.biz.DateBase;


public class Oracle implements DateBase {


    @Override

    public Connection getConnection(String url, String user, String password) {

        System.out.println("我是Oracle厂商实现的返回connection");

        return null;

    }


    @Override

    public void closed() {

        System.out.println("Oracle数据库connection关闭");

    }

}


ok,基本功已经做完了,现在开始思考接口的作用,既然接口是为了屏蔽不同类的差异性的,那么我们需要一个工厂类,用来返回你想要的结果,是oracle还是mysql的,此时我们开始编写工厂类。

--------------------------------------------------------------

DbFactory.java

--------------------------------------------------------------

package com.rs.factory;


import com.rs.biz.DateBase;

import com.rs.impl.Mysql;

import com.rs.impl.Oracle;


public class DbFactory {

    public static DateBase getConnection(DateBase db){

        return db;//通过传入的db类型,返回不同的类。这些类都是实现了接口DateBase的类

    }

}


--------------------------------------------------------------

好了,下面我们开始写测试类TestDateBase.java

--------------------------------------------------------------

packagetest.com.rs;

 

importcom.rs.biz.DateBase;

importcom.rs.factory.DbFactory;

importcom.rs.impl.Mysql;

importcom.rs.impl.Oracle;

 

public classTestDateBase {

    public static voidmain(String[] args) {

       String url = "";

       String user = "";

       String password = "";

       

       DateBase db = newDbFactory().getConnection(newOracle());

       db.getConnection(url, user, password);

       db.closed();

       

       DateBase db2 = newDbFactory().getConnection(newMysql());

       db2.getConnection(url, user, password);

       db2.closed();

    }

}


--------------------------------------------------

打印输出

我是Oracle厂商实现的返回connection

Oracle数据库connection关闭

我是mysql厂商实现的返回connection

Mysql数据库connection关闭

--------------------------------------------------------------------

讲解结束,理解这段代码后,你可以更改一下你的工厂类,将获得连接那个方法更改为用户不可见,自己设计好,或者从一个配置文件读出。




如有不懂的 可以联系小弟,我们一起进步,QQ 394263788 转载请说明,写文章的不多了。



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
31 4
|
12天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。
|
11天前
|
Java
Java基础(13)抽象类、接口
本文介绍了Java面向对象编程中的抽象类和接口两个核心概念。抽象类不能被实例化,通常用于定义子类的通用方法和属性;接口则是完全抽象的类,允许声明一组方法但不实现它们。文章通过代码示例详细解析了抽象类和接口的定义及实现,并讨论了它们的区别和使用场景。
|
11天前
|
Java 测试技术 API
Java零基础-接口详解
【10月更文挑战第19天】Java零基础教学篇,手把手实践教学!
16 1
|
16天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
13 3
|
16天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
16天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
28 2
|
16天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
27 2
|
16天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
26 1
|
16天前
|
Java 数据处理
下一篇
无影云桌面