首页 新闻 会员 周边

类方法的设计

0
悬赏园豆:10 [已解决问题] 解决于 2011-03-02 10:50

对于方法应该属于哪个类之间有些疑问。

比如,添加角色。它的启动者应该是用户,所以在用户的类下面应该有添加角色的方法吧。

但是自己以前做的东西像添加角色的方法是放在角色类里面的。到要用到的地方再实例化角色类调用添加角色的方法。

疑问:用户类中是否应该有添加角色的方法?

吕飞的主页 吕飞 | 菜鸟二级 | 园豆:280
提问于:2011-03-01 21:12
< >
分享
最佳答案
0

添加角色应该属于角色类的方法。

举个例子,比如说银行存钱,那钱是属于帐户还是属于用户。如果属于用户,那么用户需要不停地去调用帐户的私有属性,比如说帐户余额,以及由于存款变化而导致的信用度的重新计算等等等。也就是说他操作的都是帐户的东西

我们且不说从面向对象的角度这样对不对,就说从重构的角度来说,如果一个方法与另一个类有着太多的交互?那么怎么办?把这个方法移到他需要频繁打交道的这个类中去。

你的这个问题也是一样。

另外,楼上说,还取决于数据库的设计,这个几乎是没有道理的,我们在有了面向对象程序设计之后为什么要提出ORM(Object to Relation),而不是ROM(Relation to Object),另外,即使就算牵强地说,我要为了数据库上的效率而对我的面向对象做出屈服让步,也完全可以在对象与关系之间搭建这么一层,而没必要为了数据库而对我们的OO做出不OO的举动

收获园豆:10
飞林沙 | 菜鸟二级 |园豆:230 | 2011-03-02 00:39
其他回答(3)
0

面向对象的好处就是提高开发效率。其实用户类中是否应该有添加角色从程序上来说是没有问题的,但是从我们平时编程的规范上来看,角色方法应该写在角色类里面,这从以后的维护上来说也是比较方便的。个人认为,都可以。后者更佳。同时还要看数据库设计了,如果角色是张单独表,最好写在角色类里面。——————仅供参考,多多建议!

费里曼 | 园豆:493 (菜鸟二级) | 2011-03-01 22:04
0

用相应的设计模式

慧☆星 | 园豆:5640 (大侠五级) | 2011-03-02 08:49
0

添加角色。它的启动者应该是用户

为什么它的启动者“应该”是用户呢?

理论上讲,用户类不应该有添加角色的方法。这会破坏内聚性。

Jerry Chou | 园豆:2642 (老鸟四级) | 2011-03-02 09:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册