Насколько подробными должны быть имена для классов и экземпляров 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; }
...
}
Затем я хочу создать элемент управления, который позволит мне отображать этот класс для пользовательского ввода. Таким образом, я создаю пару классов, связанных с представлениями:
- EnumerableRangeControlView UserControl (в XAML) и
- POCO EnumerableRangeControlViewModel
Теперь я использую эту пару в родительском View и ViewModel соответственно. С MVVM экземпляру представления не нужно имя, но мой экземпляр ViewModel теперь называется примерно так:
IndependentVariableEnumerableRangeControlViewModel.
Вещи начинают выходить из-под контроля! Чтобы ты делал?
1 ответ
Я предлагаю следующее:
Удалите слово "Control" из классов View/ViewModel и имен экземпляров. "View" и "ViewModel" четко устанавливают цели класса.
(Необязательно) Последовательно примите соглашение для пост-исправления экземпляров ViewModel с "VM".
В приведенном выше примере имя экземпляра
IndependentVariableEnumerableRangeControlViewModel
становится намного более читабельным
IndependentVariableEnumberableRangeVM