标准的"模型视图控制器"模式与Microsoft的模型/视图/ ViewModel模式之间是否存在差异?
首先,我想就增加关于这个主题的无数问题而道歉.我理解MVVM和MVC之间的基本区别.我不明白的是M.的确切定义.
在我对MVC的理解中(与维基百科上的内容一致),模型封装了应用程序的状态(以及可能的业务逻辑).它让View知道什么时候发生了变化.它可以实现为具有允许存储或检索数据的方法的类.它可能有一个接口,允许View监听数据的变化.
我在MVVM中读过类似的模型描述.但是,我经常发现人们将模型称为代表您在业务领域中建模的事物的类.在他的文章中,John Papa将模型称为"表示描述特定实体的数据点的类.例如,具有CompanyName和CustomerId等属性的Customer类.他继续解释说,"我有一个班级,负责打网络服务去获取我的数据,并为我的ViewModel填充我的模型".
通常,我会将一些域概念称为域类的类.我同意模型引用那些类,但它不拥有它们.我同意John的观点,即用服务获得的数据填充这些类的工作是一个好主意.他似乎暗示这是ViewModel或其他一些作品.我认为这是模型的关键工作.当然,有一个类(或其他)来做它,但该类是模型本身的一部分.
MVC/MVVM中的M是模型的一些域概念的类吗?或者是封装应用程序数据的东西?
我喜欢有人告诉我,我并不疯狂,而且在某个地方,MS阵营中的人们从根本上改变了模型在这些模式中的含义.呃,也许我在错误的地方虽然:)