对于OOP的方法归属有点疑惑.高手指教一下吧

maskdata 2011-02-23 10:13:46
比如某个论坛程序如果采用OOP方式进行设计

在创建类库的时候.有一个user类(用户类)和一个topic类(话题类)

然后有一个新增话题的方法(fn).那么这个fn应该属于哪个类呢?

用户可以增加帖子.而帖子可以被用户增加.

所以这个方法是应该属于user类中的一个方法.还是topic类中的一个方法呢?

因为用户类内可能有注册和登录方法.而话题类可能有获取话题列表和话题详情的方法

就是这种涉及2个对象关系的方法总是有点迷惑
...全文
160 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SICTXK 2011-02-24
  • 打赏
  • 举报
回复
可以拿出来写,两个都不放。哪里需要时requrie一下。
helloyou0 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maquan 的回复:]

一个简短的回答:都行。

稍微长一点的回答:这事儿没有一定之规。

^_^

如果你的 user / topic 这两个类是指实体类(类似于 EJB 里 EntityBean 的概念),那其实用哪个都不合适。如果是指工具类(类似于 EJB 里 SessionBean 的概念),用哪个都可以,甚至可以专门构建一个。真正要追求的目标是“解耦”,代码之间尽量减少复杂的、交叉的依赖引用。
[/Quote]

同意,

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





maquan 2011-02-23
  • 打赏
  • 举报
回复
一个简短的回答:都行。

稍微长一点的回答:这事儿没有一定之规。

^_^

如果你的 user / topic 这两个类是指实体类(类似于 EJB 里 EntityBean 的概念),那其实用哪个都不合适。如果是指工具类(类似于 EJB 里 SessionBean 的概念),用哪个都可以,甚至可以专门构建一个。真正要追求的目标是“解耦”,代码之间尽量减少复杂的、交叉的依赖引用。
张吉Jerry 2011-02-23
  • 打赏
  • 举报
回复
user类用来操纵用户,如添加用户、修改用户信息;
topic类用来操纵话题,在addTopic()的时候将user类当做参数传进去就行。
程序猿之殇 2011-02-23
  • 打赏
  • 举报
回复
单纯的应该放到topic类里

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

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧