viewmodel获取业务逻辑的方法有哪些?比方说,我有3个模型,基于这3个模型数据,我将产生(基本上是计算)一些新值(比方说模型4),我将在视图中显示模型4的数据。
注意,我不能将计算逻辑放在服务端,因为我无法控制。。在他们身上。我得自己计算模型4。。我应该在哪里计算模型4值?
问题1)调用服务表单ViewModel(即GetModel_1_Data、GetModel_2_Data和GetModel_3_Data)是好的做法吗?
2)根据mvvm,我不允许在ViewModel上有业务逻辑...那我该怎么办?我们有哪些不同的方法可以实现..这个?
3)在Mvvm中,我看到UI使用的模型基本上是带有INotifyProperty更改的模型。称呼它们的正确词是什么..我可以作为 UI 模型调用吗?还是 UI 模型对象?其他模型就像普通 CLR 对象一样。
当我读到mvvm时,很多人说要在Model中保留逻辑……whic model……它们是指普通的clr类……还是UI模型(它们有INotifyProperties tyChanged)如果不是,我们需要一些层来从POCO模型生成UI模型吗?这个层叫什么……如果是这样……
谢谢你,
我认为一旦你不再将模型视为一个单一的类,一切都应该变得清晰起来。MVVM 是关于表示层设计的。为了专注于表示,它将整个业务逻辑层抽象为模型。从这个意义上说,模型是一个层,而不是单个类或组件。它本身可以有自己的设计模式(服务,DDD,CQRS,...)。
来回答你的问题
注意,我不能把计算逻辑放在服务端,因为我没有控制权..在他们身上。我必须在我这边计算模型4..我应该在哪里计算模型4的值?
这取决于你认为计算逻辑是什么。如果是业务逻辑,那么就要放到“模型”层。并不总是有明确的界限。有时候,是你做的一个决定/分类。
问题1)调用服务表单ViewModel(即GetModel_1_Data、GetModel_2_Data和GetModel_3_Data)是好的做法吗?
我不明白为什么不。另一种方法是添加一个额外的应用程序服务(或显示服务)层,将ViewModel的创建与ViewModel本身分开。
2)根据mvvm,我不允许在ViewModel上有业务逻辑...那我该怎么办?我们有哪些不同的方法可以实现..这个?
如上回答的,只要你认为计算逻辑是业务逻辑,就应该把它们放到“模型”中。除非,Model 4是纯粹的演示。上面给出了另一种选择
3)在Mvvm中,我看到UI使用的模型基本上是带有INotifyProperty更改的模型。称呼它们的正确词是什么..我可以作为 UI 模型调用吗?还是 UI 模型对象?其他模型就像普通 CLR 对象一样。
它们通常称为ViewModel
当我读到mvvm时,很多人说要在Model中保留逻辑……whic model……它们是指普通的clr类……还是UI模型(它们有INotifyProperties tyChanged)如果不是,我们需要一些层来从POCO模型生成UI模型吗?这个层叫什么……如果是这样……
模型可以表示业务逻辑对象或业务逻辑层,在上面的上下文中,它表示业务逻辑层