Re: [問題] setXXX

看板java作者 (該換個重訓方法了)時間19年前 (2006/07/20 10:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串20/22 (看更多)
※ 引述《ChienHsiang (不務正業工程師)》之銘言: : ※ 引述《Pistachi.bbs@mobbs.stut.edu.tw ()》之銘言: : : 但是"語法中"並沒有硬性規定吧? : : 也沒有一定要用Java Bean吧? : : 那我在寫C++時使用setter/getter規則該怎麼解釋? : : 這只是想解釋一個概念... : : 或許表達的不好...不要這麼計較嘛 Orz : 或許也可以把 Java Bean 的"習慣性用法"當成一種 Pattern 吧 : 我覺得倒沒什麼誰對誰錯... : 何況很多以前大家認為錯的,現在又是那麼的理所當然... : Pattern Refactory後,又是一種新的Pattern不是嗎? 物件導向概念裡頭,有個大家都知道,卻都常忽略的概念,就是「封裝」。 這東西簡單來說,就是類別中的變數,不能給其他類別直接存取,而必須 提供setter/getter來設定或取得「變數值」。 (注意!直接操作變數與間接取值是完全不同的兩回事) 這做法可以讓類別設計者能保留程式內容的彈性,當需求有變時,只需更改 類別內部對變數操作的方法,不用讓引用此類別的程式區段同時做修改。 至於為什麼要用setXXX以及getXXX。 如果某人的Java類別沒有重複利用的價值,那麼setXXX/getXXX改為任何有效的 方法名稱都可以。可是,如果這個類別有重複利用的可能,而且不知道會在 哪個領域用到,則採用getXXX/setXXX反而可以讓這隻類別提供Java Bean的功能。 不過之所以用set/get來當字首,簡單來說就是短、簡潔、易記。試想一下, 如果改用assignXXX/fetchXXX,是不是覺得很累綴哩?依學習以及使用的觀點 來看用set/get的確是種行為正確的選擇。 希望這些能解答討論串原PO的疑惑。 -- No Dying Skills, ● - Dame! New tech... but Lazy Users. .\) http://hougzou.spaces.msn.com/ _____________ ﹒ ︵ √\ ___________________ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.165.230
文章代碼(AID): #14lkL4Lb (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
問題
完整討論串 (本文為第 20 之 22 篇):
問題
文章代碼(AID): #14lkL4Lb (java)