【发布时间】:2013-06-16 16:51:12
【问题描述】:
我希望在我的系统中轻松创建从数据库填充的下拉菜单(例如,用户组列表)。对于这个系统,我通常遵循领域驱动的设计方法,包括稍微适应版本的存储库模式。 (系统是PHP的。)
由于检索给定域对象类的下拉列表是一种常见操作,我想知道在相关存储库上创建 getDropDownList() 方法是否合适。
例如,假设有问题的域对象称为“类别”。我的提议是创建一个CategoryRepository::getDropDownList() 方法,该方法将返回一个类别ID 和标题的关联数组,准备好用于创建HTML <select> 列表。
在过去的项目中,当我在类似存储库的类上创建 getDropDownList() 方法时,其他开发人员之一说这样的方法不属于该类,说它与视图有关比模型。但我不这么认为,因为该方法的目的只是返回列表的原始数据。它甚至不需要用于创建下拉列表;它可以转换为 JSON 数据或任何其他数量的东西。
我的主要问题是:
- 像我描述的那样的
getDropDownList()方法是否属于存储库类?如果没有,它应该去哪里? - 这可能只是命名问题吗?如果我将其称为
getSimpleList()或getArrayForList()以表明它返回的是一个数组,而不是已经呈现的 HTML,也许会更好?
继续分类示例,从该方法返回的数据将返回一个关联数组,其中类别 ID 作为键,类别名称作为值,例如:
array(
1 => 'Category A',
2 => 'Category B',
...
)
【问题讨论】:
-
我会选择选项 2,呈现下拉菜单是视图的工作
-
@Orangepill,只是好奇,你会给它取什么名字?我刚刚想出了
getArrayForList(),这是我目前倾向于的。 -
或者类似 getNames
标签: php architecture domain-driven-design domain-model