2009-04-19 47 views
4

在一般情况下,我更愿意用冗长的.NET类和实例的名称,但有些时候(to quote Mike Woodhouse):Model-View-ViewModel(MVVM)类和实例的名称应该如何冗长?

过冗长倾向于隐瞒句法和语法是非常重要的。

我觉得我第一次陷入过度冗赘体系的地方是在Silverlight和WPF应用程序中实现Model-View-ViewModel(MVVM)模式。

例如,我开始与EnumerableRange模型对象:

public class EnumerableRange<T> : IEnumerable<T> 
{ 
    public T Start{ get; set; } 
    public T Stop{ get; set; } 
    public long Count{ get; set; } 
    ... 
} 

然后,我想创建一个控制,这将让我表面该类用户输入。因此,我创建一对视图相关的类:

  1. 一个EnumerableRangeControlView用户控件(在XAML),和
  2. 一个POCO EnumerableRangeControlViewModel

现在,我使用此对在父查看和ViewModel,分别。随着MVVM视图实例并不需要一个名字,但我的视图模型实例现在被命名一样的东西:

IndependentVariableEnumerableRangeControlViewModel

事情开始失控!你会怎么做?

回答

3

我提出以下几点建议:

  1. 从查看/视图模型类和实例名称完全放弃了“控制”一词。 “视图”和“视图模型”清楚地表明了课堂的目的。

  2. (可选)一致采用约定来修复具有“VM”的ViewModel实例。

在上面的例子中,实例名称

IndependentVariableEnumerableRangeControlViewModel 

变得更加可读

IndependentVariableEnumberableRangeVM 
+2

我们采用了类似的东西。另外,我使用了完全删除ViewModel/VM后缀的想法。您可以使用命名空间从Model.Customer中挑选出ViewModel.Customer。这似乎是一个非常糟糕的主意,除非你记得你的视图只能看到ViewModel,所以它不会感到困惑,并且Model看不到任何东西。在您的ViewModel中,不要将使用模型放在代码的顶部,而且您必须始终将其称为Model.Customer。 – 2009-07-22 21:44:48