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

J2EE 系統中的面向物件設計精要:十二條核心原則

     編輯:Java 相關知識

前言

面向物件設計優於任何具體技術,但需防止過度設計。本文彙整十二條在 J2EE 開發中經驗證證的核心原則。

十二條設計原則

  1. 介面鬆耦合:面向介面編程,雖增微複雜度,但獲取:實現可替換不影響調用端、促進重用、利於測試 Stub 實現。
  2. 組合優於繼承:組合提供運行時行為變更彈性,Strategy/State 模式基石。
  3. 模板方法模式:正確使用繼承。已知演算法骨架、延遲具體步驟實現。IoC/DI 即模板方法應用——框架調用用戶碼,反轉控制。適合框架設計。
  4. 策略模式:比模板方法更靈活。適用於:所有步驟可變、具體步驟類有繼承層次、需與其他類關聯、運行時切換、步驟持續增加。
  5. 回調機制:策略模式特例。集中錯誤處理/資源管理、與底層實現解耦、單一流程多種實現重用。缺點:調用鏈隱藏、需建立回調介面。適合單方法回調介面(可用內部類實現)。
  6. 觀察者模式:僅當出現鬆耦合監聽者需求時使用。過度使用導致業務邏輯淹沒於事件發布碼。監聽者須快速返回、線程安全。
  7. 參數物件化:將多參數封裝為物件,簡化簽名、支援預設參數、調用端不變。代價:可能產生大量小物件消耗堆記憶體。
  8. 異常處理策略:
    • Java 分 Checked (Exception) / Unchecked (RuntimeException)。
    • 傳統觀點偏好 Checked,作者主張視情況:
      — 所有調用者必須處理/作為替代回傳值 → Checked
      — 僅少數調用者處理 → Runtime
      — 嚴重不可恢復錯誤 → Runtime
      — 不確定 → Runtime (並建議文檔聲明)
    • 最佳實踐:保留原始異常、重寫 getMessage()/printStackTrace()、豐富錯誤資訊 (錯誤碼、詳細上下文)。
  9. 反射增強框架性:
    • 運行時載入/實例化/操作類,強化工廠模式(類名外部配置)。
    • 替代 switch/if-else 進行屬性驗證:掃描 validateXxx 方法建立 Map,新增屬性無需修改核心邏輯,一次測試應對所有變更。
    • 動態代理 (JDK 1.3+) 為 AOP 基石。
  10. JavaBeans 靈活性:利用 PropertyEditor、PropertyChangeListener、VetoableChangeListener、Introspector 實現外部配置驅動。
  11. 應用程式登記表替代單例:傳統單例硬編碼、難測試、不支援介面/繼承。應用上下文 可動態配置、支援 JNDI、普通 Java 類實現,解決所有痛點。
  12. 全方位重構:不限程式碼,錯誤訊息、日誌、文檔皆為重構對象。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved