Параметры сервиса и метода DAO - PullRequest
0 голосов
/ 06 марта 2012

У меня есть интерфейс DAO для получения объекта для базы данных:

List<MyObject> find(String id)

В моем сервисе мне нужно расширить этот объект дополнительными полями, приходящими из конфигурации и / или других DAO.

List<MyObjectEx> find(String id)

Как MyObject и MyObjectEx должны относиться к другому.Деривация, агрегация, отображение полей, другое?(Я также могу представить, что DAO возвращает частичные экземпляры MyObjectEx)

Спасибо!

1 Ответ

0 голосов
/ 07 марта 2012
  1. Возможно, это не деривация, поскольку MyObjectEx не является типом MyObject. Скорее это другой тип объекта, который содержит свойства, присутствующие в MyObject. Но если MyObjectEx может быть использован в места, где требуется MyObject, тогда мы можем держать их в том же иерархия.
  2. Вы можете использовать шаблон адаптера, но я не думаю, что это будет уместно поскольку это не совсем трансформация объекта в истинном смысле.
  3. Кроме того, мы можем думать об агрегации, но тогда MyObjectEx и MyObject не сможет заменить друг друга, т.е. точка № 1 будет потеряна.
...