我有一个User
模型。可以审查用户。因此,我还有一个Review
模型,代表用户的评论。通过审核,可以保存用户的评分。
假设我要创建一个方法,根据对他的所有评论来获取用户的评分,例如getRating()
方法。我会在User
模型上创建此方法吗?或者您是否会创建一个审核管理服务类并在该类中包含该方法?
将getRating()
方法添加到User
模型感觉是合乎逻辑的事情,但另一方面,事情可能会在某一时刻失控,让我留下巨大的{{1模型类。
(这是一个简化的例子,实际上评论可能来自多个来源)。
(PS我已经阅读了一些关于此的帖子和文章,但我找不到满意的答案)。
答案 0 :(得分:1)
你不应该拥有User
模型"和" Review
模型"。 MVC中的Model是您的整个核心应用程序,它包含所有数据结构,服务,数据库适配器和使您的应用程序工作的辅助内容。你应该拥有的是:
User
业务对象和一个Review
业务对象,纯粹定义数据结构UserRepository
或UserDAO
或UserORM
或您用于与数据库交互的其他任何范例,它将数据库中的数据转换为User
个对象;同样适用于Review
UserService
,用于处理与用户相关的任务,例如通过数据库接口存储和检索它们,同样适用于Review
,或者某些不同命名的服务同时负责这两者任务所有人都不必映射1:1;业务对象实例可以映射到多个数据库表,相应的*Repository
/ *DAO
/无论如何处理,其中多个可以组合成一个服务,从而使某些事情发生。
检索某些特定数据的操作属于服务。
答案 1 :(得分:0)
为什么不将getRating()
添加到Review
模型。该方法将接受User
对象或用户ID,具体取决于方法中的逻辑。
用户模型没有了解评论的业务。
我的想法。