比如某个论坛程序如果采用OOP方式进行设计在创建类库的时候.有一个user类(用户类)和一个topic类(话题类)然后有一个新增话题的方法(fn).那么这个fn应该属于哪个类呢?用户可以增加帖子.而帖子可以被用户增加.所以这个方法是应该属于user类中的一个方法.还是topic类中的一个方法呢?因为用户类内可能有注册和登录方法.而话题类可能有获取话题列表和话题详情的方法就是这种涉及2个对象关系的方法总是有点迷惑

解决方案 »

  1.   

    单纯的应该放到topic类里用户类里如果有涉及添加话题的操作,直接调用$topic->fn()就可以了
      

  2.   

    user类用来操纵用户,如添加用户、修改用户信息;
    topic类用来操纵话题,在addTopic()的时候将user类当做参数传进去就行。
      

  3.   

    一个简短的回答:都行。稍微长一点的回答:这事儿没有一定之规。^_^如果你的 user / topic 这两个类是指实体类(类似于 EJB 里 EntityBean 的概念),那其实用哪个都不合适。如果是指工具类(类似于 EJB 里 SessionBean 的概念),用哪个都可以,甚至可以专门构建一个。真正要追求的目标是“解耦”,代码之间尽量减少复杂的、交叉的依赖引用。
      

  4.   


    同意, 首先: 都行 :)
    其次: 可以设想一下放在不同地方的后果:
             尽量让代码更易于理解, 
             更少的code, 更少的参数, 
             更少的对其它对象的引用
      

  5.   

    可以拿出来写,两个都不放。哪里需要时requrie一下。