2009-04-19 52 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