В моей сфере деятельности у нас есть продукты. Эти продукты могут быть изменены пользователем путем добавления к ним Модификаций. Модификации могут делать такие вещи, как изменение цены и свойств продукта. Мне кажется, это подходит для шаблона Decorator идеально .
Теперь представьте себе базу данных, в которой Продукты существуют в одной таблице, а Модификации существуют в другой таблице, и база данных подключена к моему приложению через Entity Framework. Как мне добиться, чтобы объекты Product и Modification реализовали один и тот же интерфейс, чтобы я мог использовать их взаимозаменяемо?
Например, такие вещи, которые я хотел бы сделать:
Для данного объекта Модификации вызовите .GetNumThings (), который затем вернет количество вещей в исходном объекте плюс или минус количество вещей, добавленных модификацией.
Этот вопрос может быть связан с довольно серьезным отсутствием внимания к мелочам EF (весь мой опыт до сих пор был довольно простым LOB-приложениями Silverlight), и если это так, пожалуйста, не стесняйтесь скажите мне RTFM.
Заранее спасибо!
Edit:
Также было бы неплохо, если бы, учитывая третью таблицу, связывающую Продукты с Модификациями (один-ко-многим), она могла реконструировать декорированный объект (я понимаю, что это, вероятно, выход из EF для автоматического выполнения). Как бы вы порекомендовали пойти по этому поводу, и где будет находиться этот код? Будет ли это частью классов EF или каждый объект, полученный от БД, должен проходить через своего рода «конструктор» для создания декорированного объекта из Продукта и его списка Модификаций?