【发布时间】:2013-05-14 17:54:31
【问题描述】:
看起来 VM = 业务逻辑层,模型 = 实体/DTO。在我的业务逻辑中,我正在验证业务规则,例如 FirstName 是否为空等,看起来这也可以是 ViewModel 的工作,因此如果我们需要在N 层架构的应用程序?而且模型只是 DTO,所以在 N 层应用程序中是否需要模型?
谢谢!
【问题讨论】:
看起来 VM = 业务逻辑层,模型 = 实体/DTO。在我的业务逻辑中,我正在验证业务规则,例如 FirstName 是否为空等,看起来这也可以是 ViewModel 的工作,因此如果我们需要在N 层架构的应用程序?而且模型只是 DTO,所以在 N 层应用程序中是否需要模型?
谢谢!
【问题讨论】:
根据Wikipedia,模型代表“概念和它们之间的关系”。通常,在多层架构中,模型的概念是层本地的。为什么?因为您不想用可能只与其中一个层相关的信息污染整个应用程序。例如,UI 层中的客户概念可能与数据访问层中的客户概念截然不同(您可能希望它们公开不同的方法)。
因此,MVVM 中的 M 指的是表示层中的模型 - 即(例如)表示 UI 世界中的客户概念的对象。这可能是一个简单的 DTO 完全合适,或者您可能希望在考虑将传入的 DTO 对象表示为模型的元素之前赋予其额外的行为(可能使用适配器模式)。我很想在此处添加图表以进行澄清,不幸的是我的声誉不允许我这样做!
【讨论】: