天天看點

【java】接口的作用|執行個體講解java接口

接口作用:

解決java不能多繼承,用過接口變相實作多繼承。

屏蔽實作的不同的差異

接口執行個體

現在假如說,java想讓oracle和mysql實作自己的資料源和關閉資料源,java隻需要做一個接口interface出來。而oracle和mysql自己去實作這個接口即可。

ok 

下面先上一個組織結構,需要用到工廠模式。

【java】接口的作用|執行個體講解java接口

總共三個包,分别是

接口包 com.rs.biz

工廠包com.rs.factory

實作類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 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;

public void closed() {

System.out.println("Mysql資料庫connection關閉");

Oracle.java

public class Oracle implements DateBase {

    @Override

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

        System.out.println("我是Oracle廠商實作的傳回connection");

        return null;

    }

    public void closed() {

        System.out.println("Oracle資料庫connection關閉");

ok,基本功已經做完了,現在開始思考接口的作用,既然接口是為了屏蔽不同類的差異性的,那麼我們需要一個工廠類,用來傳回你想要的結果,是oracle還是mysql的,此時我們開始編寫工廠類。

DbFactory.java

package com.rs.factory;

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 轉載請說明,寫文章的不多了。