Effective Java Item 65:偏好interfaces而非反射

整理 Effective Java 書中 Item 65: Prefer interfaces to reflection 心得筆記

主旨

反射(Reflection)是 Java 提供的一項強大功能,讓程式在執行期間也能動態存取類別的建構子、方法、欄位等資訊。不過,反射的代價非常高:

  • 沒有編譯期型別檢查
  • 需要大量樣板代碼
  • 效能遠低於直接呼叫

如果可以,應該優先考慮使用介面或超類別來取代反射的存取方式

Read more

Effective Java Item 64:盡量用介面來當作型別

整理 Effective Java 書中 Item 64: Refer to objects by their interfaces 心得筆記

主旨

當在宣告變數、參數或方法回傳值時,應該盡可能使用介面(interface)作為型別,而不是具體類別(class)。

這個做法讓程式碼更具彈性、更容易維護,也符合「針對抽象程式設計」的物件導向原則。

Read more