首先,在有人大喊大叫之前,我很难用一个简单的标题来概括它。另一个标题可能是“领域模型和 MVC 模型有什么区别?” 或“什么是模型?”
从概念上讲,我将模型理解为视图和控制器使用的数据。除此之外,对于模型的构成似乎有很多不同的意见。什么是域模型、应用程序模型、视图模型、服务模型等等。
例如,在我最近询问存储库模式的一个问题中,有人直接告诉我存储库是模型的一部分。但是,我阅读了其他意见,认为模型应该与持久性模型和业务逻辑层分开。毕竟,存储库模式不应该将具体的持久性方法与模型分离吗?其他人说域模型和MVC模型之间存在差异。
让我们举一个简单的例子。MVC 默认项目中包含的 AccountController。我已经阅读了一些意见,其中包含的帐户代码设计不佳,违反了 SRP 等等。如果要为 MVC 应用程序设计一个“适当的”成员资格模型,那会是什么?
您将如何将 ASP.NET 服务(成员资格提供程序、角色提供程序等)从模型中分离出来?或者你会吗?
在我看来,模型应该是“纯粹的”,可能带有验证逻辑..但应该与业务规则分开(验证除外)。例如,假设您有一条业务规则,规定在创建新帐户时必须向某人发送电子邮件。在我看来,这并不真正属于模型。那么它属于哪里呢?
有人愿意解释这个问题吗?