【发布时间】:2012-09-12 18:20:12
【问题描述】:
我将以user 对象为例。用户需要注册、登录、注销、编辑(例如,更改电子邮件)等。
所以一方面我有一个user 对象,其中包括各种类变量(伪、电子邮件等)以及getter 和setter,也许还有一些不处理db 的函数。
另一方面,我有一个 DAO 类,它是通过各种 MySQL / PDO 查询(创建记录、更新、检索信息等)直接处理数据库的对象。
是否有任何理由不让user 对象直接与DAO 对象交互?换句话说,当Controller 请求与现有user 实例相关的数据库查询时(例如,在注册过程中),它是否应该简单地调用user 中的一个函数,而该函数本身又调用DAO 中的一个函数,还是中间应该有一层?
我已经看到控制器调用第三个类与 DAO 交互并将user 实例作为参数传递的示例。有时,第三层负责创建user 实例并处理DAO。在我看来,用于处理DAO 的所有函数都可以驻留在user 对象中。我错过了什么?
【问题讨论】: