Effective Java Item4 透過私有建構函式來禁止實例化

整理Effective Java書中Item 4: Enforce noninstantiability with a private constructor心得筆記

主旨

本篇在開門見山說了使用私有建構子來防止物件被實例化。

劃重點

主要概念很簡單,你在設計一個Utils class,

  1. 請將constructor設為private。
  2. 並在被實例化時(constructor被執行時)拋出錯誤。
Read more

Effective Java Item3 使用私有建構函式或列舉實現單例

整理Effective Java書中Item 3: Enforce the singleton property with a private constructor or an enum type心得筆記

主旨

本篇在介紹單例模式(singleton pattern)以及相關缺失防範。

singleton 常見方法

  1. private constructor和static final INSTANCE
Read more

Effective Java Item2 建構函式參數過多可考慮使用建造器

整理Effective Java書中Item 2: Consider a builder when faced with many constructor parameters心得筆記

主旨

由於靜態工廠(static factories)和建構函式(constructors)還是有它的限制的,當參數變多了就不太適合,而進而衍伸出了這篇建造者模式(builder pattern)以及相關使用說明。

點出問題

  1. 典型的可伸縮建構函式(telescoping constructor)
Read more

Effective Java Item1 以靜態工廠方法代替建構函式

整理Effective Java書中Item 1: Consider static factory methods instead of constructors心得筆記

主旨

在過去傳統我們所學要取得一個物件,多半是透過該物件所提供建構函式(constructor)new出來,現在書中提出更具優勢的方式來取得物件。

劃重點

把靜態工廠方法(static factory method)直接就字面上意思拆開來看,靜態方法(static method)開發者一般會在Utils class中設計,而看到工廠(factory)字眼就會直接聯想到要製造東西。主要傳達的概念就是透過靜態工廠方法(static factory method)來掌控創建物件而不見得是透過建構函式(constructor),透過此方法有下面幾項優點:

Read more