Effective Java Item4 透過私有建構函式來禁止實例化
整理Effective Java書中Item 4: Enforce noninstantiability with a private constructor心得筆記
主旨
本篇在開門見山說了使用私有建構子來防止物件被實例化。
劃重點
主要概念很簡單,你在設計一個Utils class,
- 請將constructor設為private。
- 並在被實例化時(constructor被執行時)拋出錯誤。
關於這點sonarQube也有提出相同的建議Utility classes should not have public constructors,的確這類型的class實例化沒有意義的,為了防止它被誤用,也能防止被子類別調用super();
被實例化。
public class CryptoUtils {
private CryptoUtils() {
throw new IllegalStateException("Utility class");
}
public static String md5(String content, String key) {
...
}
}
參考延伸閱讀:
Read other posts