Я впервые использую шаблон DAO. Из того, что я прочитал до сих пор, реализация этого шаблона поможет мне отделить мой вызывающий код (контроллер) от любой реализации персистентности - именно то, что я хочу; то есть я не хочу, чтобы меня ограничивали использованием какой-либо конкретной базы данных или сторонних библиотек.
Я создаю тестовый код (в стиле TDD), используя MongoDB и morphia (в качестве примера), с предоставленным morphia классом BasicDAO
.
Насколько я могу судить, для расширения BasicDAO
требуется конструктор, принимающий объекты Morphia и Mongo; это очень специфические (сторонние) типы, которые мне действительно не нужны, вне самого класса DAO.
Как я могу получить больше подключаемой архитектуры? Под этим я подразумеваю, что мне следует изучить, чтобы настроить мое приложение для использования определенного DAO с конкретными аргументами конфигурации, внешними по отношению к фактическому источнику?