当我在MVVM应用程序中处理业务逻辑时.我应该在Model还是ViewModel上执行此操作?
例如,如果我想在重新评估资产后重新计算成本,我应该对模型进行操作吗?
相反,在ViewModel上执行此操作是否有优势?
如果我有一个ViewModel列表会发生什么,但我想将其转换为模型列表,以便我可以进行一些处理?我可以将Model公开为ViewModel的属性(并使用它来构建Models列表).但这意味着View将能够访问原始Model的属性
bod*_*gly 12
模型的目的是表示(或建模)您的业务领域.因此,业务逻辑按定义进入模型,而不是ViewModel.
ViewModel的工作是公开Model的属性和字段,并准备它们供View使用.
例如,描绘一个银行应用程序.模型可以代表一个帐户.也许该模型具有帐户余额.模型的工作可能是跟踪平衡并确保维持某些不变量(例如不允许大于余额的提款).ViewModel的工作可能是将余额转换为在视图中用作绑定的字符串.
您希望尽可能多地保留ViewModel中的逻辑,以保持代码可重用和松散耦合.
Fab*_*ato 12
我的建议是将逻辑放在服务层中.这是视图模型和模型之间的中间层(在面向实体的范例中,它应该只包含属性).所以正确的生命周期可能是:查看模型 - >服务 - >模型处理.如果需要,这还允许通过其他视图模型重用业务逻辑代码