对于Model-View-ViewModel(MVVM)类和实例,名称应该有多详细?

时间:2009-04-19 19:37:26

标签: naming-conventions naming mvvm verbosity

一般来说,我更喜欢使用.NET类和实例名称,但有时候(to quote Mike Woodhouse):

  

过度冗长倾向于隐藏语法,语法很重要。

我觉得我真正偏离过度冗长的制度的第一个地方是在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 UserControl(在XAML中)和
  2. 一个POCO EnumerableRangeControlViewModel
  3. 现在,我分别在父View和ViewModel中使用这一对。使用MVVM,视图实例不需要名称,但我的ViewModel实例现在命名为:

    IndependentVariableEnumerableRangeControlViewModel 即可。

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

1 个答案:

答案 0 :(得分:3)

我建议如下:

  1. 从View / ViewModel类和实例名称中删除“Control”一词。 “View”和“ViewModel”清楚地说明了课堂目的。

  2. (可选)始终采用约定来使用“VM”对ViewModel实例进行后期修复。

  3. 在上面的示例中,实例名称

    IndependentVariableEnumerableRangeControlViewModel 
    

    变得更具可读性

    IndependentVariableEnumberableRangeVM