DDD - Проверка грязи на уровне презентации / приложения - PullRequest
1 голос
/ 17 июля 2011

Если в моем приложении есть прикладной уровень, который предоставляет сервисы, которые могут вызываться моим презентационным уровнем, и эти сервисы приложений возвращают доменные объекты (не используя DTO) на презентационный уровень, если пользователь изменяет состояние объекта домена Затем я определяю, что было изменено пользователем, когда оно передается обратно на уровень приложений для обновления ??

Итак, как прикладной уровень определяет, какие изменения были внесены в объект домена пользовательским интерфейсом, чтобы он мог

  1. Начать UnitOfWork
  2. Получить объект домена из хранилища
  3. Применение изменений к объекту домена
  4. Зафиксировать UnitOfWork

1 Ответ

0 голосов
/ 18 июля 2011

Поскольку вы используете сервисы приложений между презентацией и «нижними» уровнями, вы, вероятно, используете доменные объекты, которые отделены от сеанса ORM, вы манипулируете ими в презентации и возвращаете их обратно для сохранения.

РеальныйВопрос в том, зачем тебе это.Обычно грязная проверка сущности необходима, потому что пользователь изменяет ее в пользовательском интерфейсе, поэтому вам нужно отображать сообщения типа «Вы уверены, что хотите оставить эту форму» или что-то в этом роде.

В любом случае, я предлагаю вам изучить механизмы привязки данных в структуре пользовательского интерфейса, над которой вы работаете (WinForms / WPF?).Вы можете сделать так, чтобы ваши объекты реализовали что-то вроде интерфейса INotifyPropertyChanged.Вы можете сделать так, чтобы ваш докладчик в пользовательском интерфейсе выслушал это изменение и пометил текущий отредактированный объект как грязный.Вы можете иметь базовый класс для ваших сущностей, содержащий свойство IsDirty.Все зависит от того, где и что вы пытаетесь сделать ...

...