Насколько подробными должны быть имена для классов и экземпляров Model-View-ViewModel (MVVM)? - PullRequest
4 голосов
/ 19 апреля 2009

В общем, я предпочитаю быть многословным с именами классов и экземпляров .NET, но иногда ( цитирую Майка Вудхауса ):

Чрезмерная детализация имеет тенденцию скрывать синтаксис, и синтаксис важен.

Первое, что я почувствовал, что действительно заблудился в режиме чрезмерной детализации, - это реализация шаблона Model-View-ViewModel (MVVM) в приложениях Silverlight и WPF.

Например, я начинаю с объекта модели 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. a POCO EnumerableRangeControlViewModel

Теперь я использую эту пару в родительском View и ViewModel соответственно. С MVVM экземпляру представления не нужно имя, но мой экземпляр ViewModel теперь называется примерно так:

IndependentVariableEnumerableRangeControlViewModel .

Вещи начинают выходить из-под контроля! Что бы вы сделали?

1 Ответ

3 голосов
/ 20 апреля 2009

Я предлагаю следующее:

  1. Удалите слово "Control" из классов View / ViewModel и имен экземпляров в целом. «View» и «ViewModel» четко определяют цели класса.

  2. (Необязательно) Последовательно применяйте соглашение для пост-исправления экземпляров ViewModel с помощью «VM».

В приведенном выше примере имя экземпляра

IndependentVariableEnumerableRangeControlViewModel 

становится намного более читабельным

IndependentVariableEnumberableRangeVM
...