c# – 我应该在Model或ViewModel上实现业务逻辑

当我在MVVM应用程序中处理业务逻辑时.我应该在Model还是ViewModel上执行此操作?

例如,如果我想在重新评估资产后重新计算成本,我应该对模型进行操作吗?

相反,在ViewModel上执行此操作是否有优势?

如果我有一个ViewModel列表会发生什么,但我想将其转换为模型列表,以便我可以进行一些处理?我可以将Model公开为ViewModel的属性(并使用它来构建Models列表).但这意味着View将能够访问原始Model的属性

最佳答案
模型的目的是表示(或建模)您的业务领域.因此,业务逻辑按定义进入模型,而不是ViewModel.

ViewModel的工作是公开Model的属性和字段,并准备它们供View使用.

例如,描绘一个银行应用程序.模型可以代表一个帐户.也许该模型具有帐户余额.模型的工作可能是跟踪平衡并确保维持某些不变量(例如不允许大于余额的提款). ViewModel的工作可能是将余额转换为在视图中用作绑定的字符串.

您希望尽可能多地保留ViewModel中的逻辑,以保持代码可重用和松散耦合.

转载注明原文:c# – 我应该在Model或ViewModel上实现业务逻辑 - 代码日志