Сколько слоев объектов данных является хорошей практикой? - PullRequest
1 голос
/ 23 марта 2011

У нас есть сервер Java среднего размера, данные которого передаются следующим образом:

База данных SQL -> Уровень данных -> Бизнес-уровень -> Сериализация XML

Важно отметитьчто модель данных в основном не меняется между слоями.Тем не менее мне сказали, что использование единой модели данных, используемой как: База данных SQL - (IBATIS) -> Модель -> преобразовать модель в XML - не очень хорошая идея, поскольку изменения схемы означают изменения в модели, а затем изменениявсе слои в приложении.И XML-изменения также означают, что модель должна измениться.

Итак, рекомендуется ли в этом случае иметь два слоя объектов?1) Слой данных бизнес-логики, который отображается в бизнес-схеме с помощью IBatis.2) Уровень XML, который JAXB использует для преобразования в XML.

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Примечание: Я веду EclipseLink JAXB (MOXy) , а EclipseLink предоставляет реализации JAXB и JPA.

Я рекомендую использовать одну модель данных, которая сопоставлена ​​сXML через JAXB и в базу данных через JPA.

изменения схемы означают изменения в модели, а затем изменения во всех слоях приложения.

  • Еслиизменение схемы вводит новые данные, а затем влияет на модель; изменения схемы, которые не вводят новые данные (изменение порядка элементов, добавление элемента группировки), должны влиять только на метаданные отображения.

Так что рекомендуется в этом случае иметь два слоя объектов?

  • Если у вас есть две модели объектов, то вы собираетесь ввести слой, который преобразуется между моделями объектов.Это включает в себя другую библиотеку, с которой вам нужно иметь дело, и больше кода, который вам нужно поддерживать.Изменение вашей схемы теперь влияет на вашу объектную модель и ваш слой преобразования объектов.Это похоже на сценарий с одной объектной моделью.
1 голос
/ 23 марта 2011

В общем: да, лучше иметь отдельные модели.

PS Так как в своем вопросе вы назвали это слоями, вам может понравиться следующий мультфильм: http://geekandpoke.typepad.com/geekandpoke/2011/03/architectural-best-practices.html Не берите егослишком серьезно :) 1005 *

...