2011年6月27日 星期一

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 來得明確。

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...