POJO 對象setter 方法是否合適return 「this」
通常的POJO對象setter方法return 為void
但是面對對象屬性填充時,一堆的set方法讓代碼看起來很臃腫,部分同學採用類build模式,對setter方法進行改造,改造後就可以使用鏈式處理簡化屬性設置;
流式編碼風格如:
有人認為這讓pojo方法設置變得更加便捷,有其使用之處,但是也有人認為打破了Java Bean的規約,破壞了每個函數單一職責的原則,也可能會破壞一些工具庫的使用,或組織JVM做一些優化。而且在IDE中getter&setter的自動生成內容中並沒有「return this」。綜其所述,setter方法「return this」並不建議。
當然還有其它選擇方案:
方法一:
採用java內置語法:
方法二:
採用更加複雜的內部類builder模式:
造者模式(Builder Pattern):將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。但是一般POJO 類都比較簡單,非複雜對象,所以採用builder模式並不會讓代碼變得簡潔,反而會顯得更加臃腫。
方法三:
屬性新增withXxx方法:
結論:
不建議在POJO: Java Bean的setter方法中添加『return this』,我們遵循Java規範,如果期望簡化Java Bean的屬性設置,可以採用with或build方法。
參考:
https://en.wikipedia.org/wiki/Plain_old_Java_object
https://stackoverflow.com/questions/1345001/is-it-bad-practice-to-make-a-setter-return-this
只有技術才是硬通貨,看到技術背後的思想價值;做別人做不了的事情。


TAG:Java進階與雲計算開發 |