Да, это действительно хорошая практика для абстрагирования/инкапсуляции логики доступа к БД из другой части o. Уровень доступа к данным не должен быть доступен напрямую или открыт для всех. Если вы разрабатываете приложение, вы должны учитывать этот важный фактор «Слоистая архитектура», например, бизнес-уровень, уровень обслуживания, уровень представления и т. Д. Рабочий поток, такой как уровень обслуживания (если его веб-приложение), вызывает уровень доступа к бизнес-уровню и бизнес-уровню. Все эти слои должны быть очень абстрагированы друг к другу или должны быть доступны только для самого быстрого слоя (так называемые клиенты).
На ваш вопрос: Предположим, что ваша текущая реализация доступа к данным основана на простой JDBC/ODBC. По истечении некоторого времени, когда ваши требования растут; вы планируете реализовать его с помощью некоторой структуры ORM. В этом случае очень легко переключаться/переноситься между различными логиками доступа к данным, написанными в разных API, не затрагивая остальную часть вашего приложения, а другие слои не знают о ваших изменениях, так как ваш дизайн очень абстрагирован по своей природе.
Итог: Всегда работайте с абстрактным интерфейсом, а не против реализации.
Надеюсь, это полезно и комментарии оценили
Это должно вам помочь. Это вопрос, который был ранее опубликован, который похож на ваш. http://stackoverflow.com/questions/936172/how-to-encapsulate-database-access?rq=1 –