作者aiueoH (滿滿的)
看板Programming
標題[請益] class member 是否該當 method 參數?
時間Mon Apr 14 23:57:11 2014
小弟在寫物件程式的時候
一直有一個問題
一個 class 的 method
如果需要用到 class member
該直接在 method 內存取 member
還是 將 member 當作參數 傳給 method 呢?
我的想法是
class 的 method 直接用 member 的話
感覺似乎比較有內聚力(?)
好像包成 class 也比較有理由
但想到要寫 test
如果把 member 當作參數 傳給 mehtod
這樣測試不同的資料時好像比較好寫
想請教板上各位先進
怎樣的寫法比較恰當呢? 以及理由是..?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.143.43
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Programming/M.1397491034.A.0C9.html
1F:推 legendmtg:member function當然是直接用member啊 220.134.108.48 04/15 00:12
2F:→ legendmtg:但是在做成member function之前 220.134.108.48 04/15 00:12
3F:→ legendmtg:你需要先考慮將function設計成 220.134.108.48 04/15 00:13
4F:→ legendmtg:non-member non-friend 220.134.108.48 04/15 00:13
5F:→ legendmtg:Effective C++ 條款23 220.134.108.48 04/15 00:13
感謝指點 可能因為都寫 C# JAVA 一直想著要放在 class 看來我還太淺了 0.0
6F:推 LPH66:寫 test 這方面你要思考為什麼需要外部指定 123.195.39.85 04/15 01:19
7F:→ LPH66:一個物件的內部狀態 -- 或許那其實是個參數 123.195.39.85 04/15 01:20
8F:→ LPH66:那就應該要有適當的 setter 把參數設定好 123.195.39.85 04/15 01:20
9F:→ LPH66:或許那是某種狀況下的內部狀態, 那你就得要 123.195.39.85 04/15 01:21
10F:→ LPH66:設法在 test 裡還原出這個狀態 123.195.39.85 04/15 01:21
11F:→ LPH66:更有可能這個 method 其實是 private 123.195.39.85 04/15 01:21
12F:→ LPH66:這也跟上面一樣你得還原出這種狀況出來 123.195.39.85 04/15 01:22
我好像忽略了"狀態"這件事情了 謝謝指點
13F:推 legendmtg:原來這篇不是在C++板...orz 220.134.108.48 04/15 13:27
原本考慮要在 OOAD 發問的 0.0
※ 編輯: aiueoH (36.231.143.43), 04/16/2014 01:57:54