「找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混在一起。」
這是「開閉原則」(OCP)的實踐基礎:對擴展開放,對修改關閉。
「面向接口編程」實質是「面向超類型編程」。
// 面向實現:緊耦合
MySQLConnection conn = new MySQLConnection();
conn.connect();
// 面向接口:鬆耦合
Connection conn = DriverManager.getConnection(url); // 介面
conn.connect(); // 運行時由具體驅動實現
| 原則 | 核心思想 |
|---|---|
| 單一職責 (SRP) | 類只有一個引起變化的原因 |
| 開閉原則 (OCP) | 擴展開放,修改關閉 |
| 里氏替換 (LSP) | 子類必須能替換父類不破壞行為 |
| 接口隔離 (ISP) | 多個專用接口優於單一臃腫接口 |
| 依賴倒置 (DIP) | 高層模塊不依賴低層,雙方依賴抽象 |
掌握這兩大核心原則,再結合 SOLID,能指導你設計出高內聚、低耦合、易維護的系統架構。