看起来像VM =业务逻辑层,而Model = Entities / DTO。在我的业务逻辑中,我正在验证业务规则,例如FirstName是否为空等等,看起来这也可以是ViewModel的工作,那么如果我们需要在一个MVVM设计模式中使用MVVM,那么应该在哪里进行业务验证。 N-Tier架构的应用程序?而模型只是DTO,那么在N层应用程序中是否需要模型?
谢谢!
答案 0 :(得分:2)
根据Wikipedia,该模型代表“概念及其之间的关系”。通常,在多层体系结构中,模型的概念是层的本地。为什么?因为您不希望使用可能仅与其中一个层相关的信息污染整个应用程序。例如,UI层中的Customer概念可能与数据访问层中的Customer概念完全不同(您可能希望它们暴露不同的方法)。
因此,MVVM中的M指的是表示层中的模型 - 它是(比如说)在UI世界中表示Customer概念的对象。这可能完全适合作为简单的DTO,或者您可能希望在考虑它来表示模型的元素之前赋予传入的DTO对象额外的行为(可能使用适配器模式)。我很乐意在这里添加一个图表来澄清,不幸的是我的名声不允许我这样做!