添加角色应该属于角色类的方法。
举个例子,比如说银行存钱,那钱是属于帐户还是属于用户。如果属于用户,那么用户需要不停地去调用帐户的私有属性,比如说帐户余额,以及由于存款变化而导致的信用度的重新计算等等等。也就是说他操作的都是帐户的东西
我们且不说从面向对象的角度这样对不对,就说从重构的角度来说,如果一个方法与另一个类有着太多的交互?那么怎么办?把这个方法移到他需要频繁打交道的这个类中去。
你的这个问题也是一样。
另外,楼上说,还取决于数据库的设计,这个几乎是没有道理的,我们在有了面向对象程序设计之后为什么要提出ORM(Object to Relation),而不是ROM(Relation to Object),另外,即使就算牵强地说,我要为了数据库上的效率而对我的面向对象做出屈服让步,也完全可以在对象与关系之间搭建这么一层,而没必要为了数据库而对我们的OO做出不OO的举动
面向对象的好处就是提高开发效率。其实用户类中是否应该有添加角色从程序上来说是没有问题的,但是从我们平时编程的规范上来看,角色方法应该写在角色类里面,这从以后的维护上来说也是比较方便的。个人认为,都可以。后者更佳。同时还要看数据库设计了,如果角色是张单独表,最好写在角色类里面。——————仅供参考,多多建议!
用相应的设计模式
添加角色。它的启动者应该是用户
为什么它的启动者“应该”是用户呢?
理论上讲,用户类不应该有添加角色的方法。这会破坏内聚性。