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

В общем, я предпочитаю быть многословным с именами классов и экземпляров.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. POCO EnumerableRangeControlViewModel

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

IndependentVariableEnumerableRangeControlViewModel.

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

1 ответ

Решение

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

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

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

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

IndependentVariableEnumerableRangeControlViewModel 

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

IndependentVariableEnumberableRangeVM
Другие вопросы по тегам