作者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/cn.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