首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 接口實戰精講:從數據庫連接工廠看抽象與解耦之道

     編輯:Java 相關知識

接口的核心價值

接口是類的標記與契約,體現「抽去像的部分」——定義做什麼,不關心怎麼做。統一管理不同實現類,實現面向接口編程,降低耦合。

問題場景:多數據庫支持

需提供通用數據庫連接組件,支持 Oracle、MySQL、SQL Server 等。
痛點: 1) 每個類重復代碼;2) 編譯時無法確定用戶用哪種數據庫。

解決方案三步走

1. 定義接口契約


public interface DataBase {
    Connection openDB(String url, String user, String password);
    void close();
}

2. 具體實現類


public class MySQLImpl implements DataBase {
    private String url = "jdbc:mysql://localhost:3306/test";
    private String user = "root";
    private String password = "";
    private Connection conn;
    public Connection openDB(String url, String user, String password) {
        // 加載驅動、建立連接...
        return conn;
    }
    public void close() { /* 關閉連接 */ }
}
// OracleImpl、SQLServerImpl 同理實現 DataBase

3. 工廠模式屏蔽實例化細節


public class DBFactory {
    public static DataBase getConnection() {
        // 可讀取配置文件動態決定
        return new MySQLImpl(); 
    }
}

客戶端調用


DataBase db = DBFactory.getConnection();
Connection conn = db.openDB(url, user, pass);
// 使用連接...
db.close();

客戶端完全面向 DataBase 接口,無感知具體實現。工廠內部切換實現類,客戶端代碼零修改。

深度思考

  • 接口不負責任何具體操作,純粹定義規範。
  • 工廠封裝創建邏輯,實現依賴倒置:高層模塊依賴抽象,低層模塊實現抽象。
  • 這就是「對接口編程,不對實現編程」的經典實踐。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved