可以说我有一个数据集,想要以多种方式显示。也许作为电子表格和条形图。对于两个 View ,模型中的数据都是相同的。显然,观点必须不同。
但是,创建包装相同模型的不同 View 模型,每个 View 模型都处理特定于每个 View 的功能还是让一个 View 模型以多种方式公开该模型是否更有意义?
如果每个 View 模型中的功能的90%相同,并且对应 View 中的差异略有不同,该怎么办?
View 模型是否与 View 或模型更耦合?
最佳答案
我不确定是否可以给您一个是/否的答案。
这真的取决于您的目标。
在创建其他ViewModels
时,我没有发现任何错误。如果有90%的常用功能,并且您不想将其保留在一个ViewModel
中-只需使用继承即可:
public class ParentViewModel: BaseViewModel
{
protected readonly Model _model;
public ParentViewModel(Model model)
{
_model = model;
}
}
public class ExtendedViewModel
{
public ExtendedViewModel(Model model): base(model)
{
}
}
如果需要,此方法将帮助您分离某些特定于View的属性。
还要记住,在开始向其中一个 View 中添加新功能之后,您必须向 View 模型中添加新代码。结果,您将获得一个ViewModel,它具有许多特定于网格的代码作为特定于图表的代码。那将违反Single Responsibility Principle
所以我的意思是,您可以使用以下任何一种方法
如果一个VM的代码只是另一个
关于design-patterns - 使用MVVM时,是否应该创建新的 View 模型以不同方式显示同一模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19570909/