Getter、Setter的用與不用 | iThome
(www.ithome.com.tw)
setter 大部份只適合用在
- 純資料 (例如 data transfer object)
- 沒有副作用的欄位 (意即存取快,而且不會影響物件完整性)
其他的地方想用也不是不行,只是建議可以想一下是不是有沒有更好的寫法。
getter 的話大致上也是用同個規則,只是比較鬆一點,例如 view 那端的物件,自然是充滿了 getter 了,因為要顯示出來啊。
什麼時候可以不用產生 getter/setter method,直接將 field public 出去?其實符合的狀況並不多,大概只有 private inner class (or package private) 才適合吧。
kerkermonkey
積分 1
幾年來,我們單位也討論過不曉得多少次,最後的共識是只要能清楚的表達物件意圖,好維護與擴充就行了,物件理論與Pattern的取捨也比照辦理。
反而 code review 的重要性提高了。