java接口举例 下载本文

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

接口作用:

1. 解决java不能多继承,用过接口变相实现多继承。 2. 屏蔽实现的不同的差异 接口实例

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

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

总共三个包,分别是 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(\数据库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(\数据库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关闭

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

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