2015-07-29 4 views
3

Согласно тому, что я видел в школе, классы моделей должны содержать только элементы данных/свойства и методы и поведение. Однако при разработке моей диаграммы классов UML я вижу возможные интерфейсы и абстрактные классы для моих классов моделей. Итак, мой вопрос:Интерфейсы и абстрактные классы для классов моделей (MVVM)

  • Если MVVM не рекомендует методы в классах моделей, полезно ли разрабатывать абстрактные классы/интерфейсы для моделей? Способ, которым я это вижу, заключается в том, что таким образом никогда нельзя извлечь выгоду из преимуществ наличия интерфейсов и абстрактных классов для моделей, если у вас нет методов в них.
+2

Модели могут иметь методы. Если это часть домена модели, все в порядке. – Enigmativity

+0

В чем причина «классов моделей не должна иметь методов»? – thomasb

+0

Я не знаю, что школа научила вас, что «модель поведения не хороша» (хотя вы не одиноки с этим). Пожалуйста, прочитайте http://www.martinfowler.com/bliki/AnemicDomainModel.html, чтобы понять, почему эта мысль вам не очень помогает. – wigy

ответ

2

В дизайне модели-вида-viewmodel большая часть логики и поведения домена зависит от модели. Это называется моделью домена в доменном дизайне.

Этот доменный код может быть повторно использован в нескольких подразделениях развертывания/приложениях/службах в вашей компании, поэтому они не зависят от реального приложения WPF, которое вы пишете.

модель представление служит тестируемым конкретным приложением адаптера и посредником для зрения вы просто пишете так, что

  • домен не загрязненное поведение, которое не требуется во всех приложениях
  • домен не загрязняется с государственными (поля, свойства), которые просто актуальны для данного экрана или UI (состояние представления)
  • вид не содержит поведение, которое вы хотите блок-тест
+0

Спасибо за все эти ответы, это очень помогает мне. @ wigy: Спасибо за ссылку и ваше объяснение. Кристально чистый. – Carlo

Смежные вопросы