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

Java 代碼編寫通用指導 30 條:從構造器到架構決策的完整規範

     編輯:Java 相關知識

第一部分:基礎規範 (1-3)

1. 命名規範

同 112690 第 1 條。

2. 經典類結構

同 112690 第 2 條。

3. main() 測試入口

同 112690 第 3 條。

第二部分:設計原則 (4-10)

4. 方法短小單一

同 112690 第 4 條。

5. 客戶視角設計 API

同 112690 第 5 條。

6. 類專注單一問題

同 112690 第 6 條。

7. 極小化可見性

同 112690 第 7 條。

8. 警惕巨大對象

同 112690 第 8 條。

9. 醜陋代碼內部化

同 112690 第 9 條。

10. 緊耦合用內部類

同 112690 第 10 條。

第三部分:工程實踐 (11-18)

11. 詳盡 Javadoc

同 112690 第 11 條。

12. 消除魔術數字

同 112690 第 12 條。

13. 構造器異常不吞沒

同 112690 第 13 條。

14. 顯式清理模式

同 112690 第 14 條。

15. try-finally 資源管理

同 112690 第 15 條。

16. finalize() 調用 super 且放最後

同 112690 第 16 條。

17. 固定集合用陣列

同 112690 第 17 條。

18. 優先介面非抽象類

同 112690 第 18 條。

第四部分:進階規範 (19-30) — 本文獨有補充

19. 構造器不調用可覆蓋方法


// 危險
public class Base {
    public Base() { initialize(); } // 可被覆蓋
    protected void initialize() { ... }
}

public class Derived extends Base {
    private final List items = new ArrayList<>();
    @Override protected void initialize() { items.add("init"); } // Base 構造器執行時 items 尚未初始化!NPE
}

規則:構造器僅調用 private/final/static 方法,或不調用任何實例方法。

20. 對象擁有行為 (豐富領域模型)

貧血模型:User { String name; } + UserService.changeName()
豐血模型:User { void changeName(String n) { ... } } — 封裝不變量、業務規則在對象內部。

21. 優先組合/創建,非必要不繼承

繼承 = 白盒復用 (破壞封裝、父類變動波及子類)。組合 = 黑盒復用。策略模式、裝飾器模式是組合典範。

22. 行為差異用繼承,狀態差異用字段

反例:RedCar/BlueCar extends Car → 正確:Car { Color color; }。繼承表達「是一種」行為專業化,非顏色/尺寸屬性變化。

23. 類路徑唯一性:同名類衝突排查

編譯器按順序採用首個同名類。排查:find $CLASSPATH -name "ClassName.class"。模塊化 (JPMS) 從根本解決。

24. AWT 適配器拼寫陷阱

windowClosing 寫錯 → 新增方法而非覆蓋 → 無編譯錯誤但不生效。解決:@Override 註解 (強制編譯器驗證覆蓋關係)。

25. 正規單例模式 (枚舉單例)


public enum Singleton { INSTANCE; } // 防反射、防序列化破壞、線程安全、代碼最少

26. 警惕分析癱瘓

先全局後局部。架構宏觀把握 → 關鍵細節深入。避免在未知細節中無限循環。

27. 警惕過早優化

功能正確 → Profiling 定位熱點 → 僅優化證實瓶頸。代價:可讀性/可維護性下降。

28. 代碼給人讀

註釋、命名、示例、ADR (架構決策記錄)。可讀性投資回報率最高。

29. 新視角審查 (Code Review)

邀請領域外同事審查。發布前發現缺陷成本 << 發布後。

30. 良好設計回報率最高

前期投入尋找正確抽象,後期輕鬆。抵制「先跑通再重構」 — 技術債務利息極高。

總結

這 30 條指導涵蓋 語法細節 → 類設計 → 工程實踐 → 架構哲學 完整鏈路。核心三線索:可讀性優先、封裝變化點、延遲決策直到有足夠信息。建議團隊內化為 Code Review 清單、Checkstyle/SpotBugs 規則、新人培訓教材,持續沉澱工程文化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved