Re: [戰] getter / setter
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 這標題取的又沒 fu 又沒意義
: 可是我懶得想啥好標題了 [死]
: getter / setter 有沒有意義?
: 我覺得要討論至少得先切割成兩個子議題:
: a. 到底需不需要有 getter / setter
: b. 若 a 的答案是「需要」,那到底要不要有 syntax sugar 來輔助?
: a 的話,我是找不到反對的理由
: 或著說,這直接就是挑戰封裝的優點?
: 反璞歸真不是不行,而是我們真的有能力突破當年設計出封裝的原因嗎?
: 至於 setter 時檢查參數值之類的枝節末流 [誤] 就更不在話下 XD
: 後來 getter / setter 也發展出很多應用
: 例如 GWT 的 Editor framework 我覺得就玩得不錯
: 沒有 getter / setter 要怎麼作到,我這種程度是想不太出來
: b(當然要先同意「需要 getter / setter」)
: 我是只知道 .net 的寫法,我看不出來這種 syntax sugar 能甜到哪?
: 我反而覺得這只是多產生幾種 coding style 所帶來的混亂
: 最重要的重點在於,getter / setter 基本上都不用人打
: 自己寫 generator 或是用 IDE 都很方便
: (這就是 Java 囉唆的好處)
: 要 coding style 整齊還是要能少打幾個(根本不用自己打)字
: 如果一定得用,我還寧願用 Lombok 這種招數
: http://projectlombok.org/features/GetterSetter.html
: (其實只是想婊 .net [喂喂])
: ========
: 最後以版主身份奉勸諸位版友... 好吧,其實主要是針對 L 先生所言
: 要人身攻擊自己,說自己白痴說自己無能
: 這不會有太大問題,基本上我天天都在作這種事
: 但是如果把「白痴」之類的字眼寫出來
: 而指稱的對象又看不出來是在指自己
: 就麻煩三思而後下筆
版工, 國外10 年前就吵得很熱了, 怎麼現在來戰?
支持者的說法不外:
1. 這兩個方法可以方便增加額外功能(比如驗證)。
2. 內部存儲和外部表現不同。
3. 可以保持外部接口不變的情況下,修改內部存儲方式和邏輯。
4. 任意管理變量的生命週期和內存存儲方式。
5. 提供一個debug接口。
6. 能夠和模擬對象、序列化乃至WPF庫等融合。
7. 允許繼承者改變語義。
8. 可以將getter、setter用於lambda表達式。(大概即作為一個函數,參與函數傳遞和運算)
9. getter和setter可以有不同的訪問級別。
但看上面的說法: 咦, 你的物件有以上的需要呼?
在偉大的JAVA案子中, 9 成以上, 不就是BEAN? 這不就是"簡單" 的取值設值而已.
這要不要算是過度使用呢?
引一篇 http://www.importnew.com/9716.html
有興趣的人可以去看看.
致於誰要信服什麼, 倒不必了, 這宗教式的OOP,
因為還有人, PERL, PHP, 甚致C++ 都要getter/setter一下的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.108.52
推
03/12 09:19, , 1F
03/12 09:19, 1F
推
03/12 09:21, , 2F
03/12 09:21, 2F
→
03/12 12:15, , 3F
03/12 12:15, 3F
→
03/29 02:26, , 4F
03/29 02:26, 4F
→
03/29 02:27, , 5F
03/29 02:27, 5F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章