Java EE - DAO DVO

Я видел два способа реализации дизайна DAO-DVO.

1) DVO - это объекты, а экземпляры DAO создаются с использованием фабрик, то есть DAO также являются объектами. 2) DVO снова являются объектами, но в этом случае DAO - это классы, которые содержат только статические методы, которые принимают DVO для выполнения задач.

Мне было интересно, какой способ лучше и масштабнее.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 909
4

Ответы 4

Я настоятельно рекомендую не использовать такое количество слоев, если они не являются физически наслоенными. например, если у вас есть что-то вроде многофункционального клиента, в который вам нужно отправлять отдельные объекты для обновления графического интерфейса, в противном случае это мир боли.

Попробуйте Spring Framework. DAO инициализируются с помощью внедрения зависимостей и представляют собой обычные объекты Java.

Затем методы в DAO должны просто использовать объекты домена, которые используются на всех уровнях приложения.

Как загрузить DAO Factory для создания подключения к базе данных?

Что касается тестируемости, я бы не советовал второй подход. Статические методы не позволяют вам настраивать поведение класса путем переопределения соавторов с помощью имитаций и тому подобного. Как выразился Мишко Хевери: «Статические методы - смерть проверяемости».

Другие вопросы по теме