Effective Java 讀書筆記: Item 4 - 避免 class 生成物件的做法

記錄讀書心得, 內容不一定和書上一致, 有些是我自己的看法。

有時會會需要一堆 static methods 或 members, 而不需生成物件, 像是寫一堆數學函式。但 Java 規定所有東西都要放在 class 裡, 只有 method, 沒有 function。所以, 需要寫這類功能時, 為了確保使用 API 或開發 API 的人不會不小心生成物件, 記得要封印 constructor:
  • 明確寫 default constructor, 並設存取級別為 private, 防止 API 使用者生成物件
  • 在 default constructor 裡丟出 exception, 避免開發 API 的人生成物件
第二點附帶的好處是, 讓這個 class 無法被繼承。不過這附帶好處滿弱的, 不如在 class 前加上 final 來得明確。

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

virtualbox 使用 USB 裝置

熟悉系統工具好處多多