【发布时间】:2012-03-15 21:23:43
【问题描述】:
假设对于每个域实体,我都有一个为数据映射器提供 API 的存储库。例如,如果我有一个 UserEntity,那么我将有一个 UserRepository,它与 UserMapper 对话以将用户数据保存在数据库中。
现在,假设在网页上提交了一个表单,我的控制器知道它需要根据提交的信息创建一个新的 UserEntity。
是吗:
-
当场做new UserEntity(),根据提交的表单数据运行所有必要的setter方法,然后把UserEntity传给repo,谁传给mapper插入?
Controller 创建 UserEntity => Repo => Mapper => DB
-
将表单数据转换为数组,并将其传递给 UserRepository,然后由后者运行 new UserEntity() 和 setter,并将其传递给映射器进行插入?
Controller 传递用户数据 => Repo 创建 UserEntity => Mapper => DB
-
将数组传递给UserRepository,谁将数组传递给mapper以进行新的UserEntity和插入?
Controller 传递用户数据 => Repo 传递用户数据 => Mapper 创建 UserEntity => DB
谁负责管理对象的创建?
【问题讨论】:
标签: php instantiation separation-of-concerns