|
|
1
3
使用视图中需要的数据创建单独的视图模型。MVC的m中的模型与域模型不同。MVC视图模型是愚蠢的DTO,没有行为,只有属性。域模型具有尽可能多的行为。具有get;set;properties的域模型只被认为是一种称为“贫血域模型”的反模式。大多数人在两个地方放置视图模型:在Web层中,靠近视图和控制器,或者在应用程序服务层中。 编辑: 当您只需要显示数据库中所有需求类型的列表和视图中的一个请求时,我确实会创建一个视图模型,其中请求和需求类型列表作为属性。我不认为调用控制器中的多个存储库是一种味道,除非您有一个更大的应用程序,并且您可能需要一个单独的应用程序服务层,用一个方法调用返回整个ViewModel。 我认为遵循托德·史密斯关于价值对象的建议也是一个好主意。 当用户可以在运行时添加或编辑NeedType时,NeedType应该是一个实体。当needtypes是硬编码的并且只随项目的新版本而更改时,needtype应该是一个值对象,needtypes的列表可以由needtype.getall()之类的东西填充,并通过向请求表中添加一列而不是单独的needtype表存储在数据库中。 |
|
|
2
1
如果它来自一个列表,那么我打赌这是一个外键。在设计域模型时,完全不要考虑您的UI。这只是needType是一个外键的情况。将字符串needtype替换为对实际needtype对象的引用。在数据库中,这将是对ID的引用。 当您构建需求类型选择列表时,只需拉取每个需求类型。如果变化不大的话,把它保存在缓存中可能是个好主意。 |
|
|
3
1
对我来说,您的needType看起来像一个值对象。如果它是只读数据,那么它应该在DDD体系结构中被视为一个值对象,并且是域的一部分。 很多人在处理DDD时会遇到“OMG如此多的冗余”问题,因为您不再使用旧的数据库->dataTable->ui方法。 |
|
|
Andrus · 如何在Linux中阅读期刊 1 年前 |
|
|
Miranda · 读取xml文件时路径错误中有非法字符 1 年前 |
|
|
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 2 年前 |
|
|
Kiryl · Sitecore中自己的控制器 2 年前 |
|
|
Farid · 如何从数据库中填充Resource.resx文件值? 2 年前 |