gpt4 book ai didi

model-view-controller - 在MVC中,1个模型1个表还是1个模型多个表?

转载 作者:行者123 更新时间:2023-12-04 17:29:05 25 4
gpt4 key购买 nike

在MVC中,1个模型1个表还是1个模型多个表?

我正在构建一个包含 3 个表的应用程序。我不知道是应该为所有 3 个表创建一个模型还是为 3 个表创建 3 个模型。

如果我为3张表使用3个模型,如果我想加入这3张表,我应该把代码放在哪里?将代码放在 3 个模型中的任何一个中?

有什么建议?

最佳答案

通常,MVC 的“模型”部分应该被解释为“演示模型”或“ View 模型”——即封装了 View 所需的所有数据和行为的类。这可能相当于也可能不相当于领域模型。

领域模型应该被设计成独立于 UI。这意味着此类模型不应受到特定于 UI 的数据和行为的污染 - 例如确定是否启用了特定按钮。

您可能还想在几个不同的 View (例如主/详细信息或显示/编辑)中显示相同的域对象,如果这些 View 差异很大,则为每个 View 拥有一个 View 模型将是有益的。

所以,一般来说,你应该独立设计你的领域层和你的表现层。

在域层中,您可以选择将三个表建模为三个类。类似福勒的书 Patterns of Enterprise Application Architecture和埃文斯的 Domain-Driven Design包含许多关于如何将关系数据建模为领域模型的指南。

在 MVC 中建模 View 时,为每个 View 创建一个模型最有意义。这样的 View 模型可能简单地封装了单个域对象,但它也可以封装和聚合多个不同的域对象。

通过这种方式,您可以确保关注点分离,并且您的类遵循单一职责原则。

对于非常简单的场景,将领域模型和表示模型合并为一层可能是有意义的,但您应该意识到这本质上意味着解决方案中没有域模型 - 所有模型都将是纯表示模型。

关于model-view-controller - 在MVC中,1个模型1个表还是1个模型多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1023484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com