2013-12-12 2 views
0

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

Я не знаю точно, почему.

Будет здорово, если вы можете предоставить мне некоторые аргументы или ссылки, чтобы следовать.

+0

Это должно вам помочь. Это вопрос, который был ранее опубликован, который похож на ваш. http://stackoverflow.com/questions/936172/how-to-encapsulate-database-access?rq=1 –

ответ

1

Да, это действительно хорошая практика для абстрагирования/инкапсуляции логики доступа к БД из другой части o. Уровень доступа к данным не должен быть доступен напрямую или открыт для всех. Если вы разрабатываете приложение, вы должны учитывать этот важный фактор «Слоистая архитектура», например, бизнес-уровень, уровень обслуживания, уровень представления и т. Д. Рабочий поток, такой как уровень обслуживания (если его веб-приложение), вызывает уровень доступа к бизнес-уровню и бизнес-уровню. Все эти слои должны быть очень абстрагированы друг к другу или должны быть доступны только для самого быстрого слоя (так называемые клиенты).

На ваш вопрос: Предположим, что ваша текущая реализация доступа к данным основана на простой JDBC/ODBC. По истечении некоторого времени, когда ваши требования растут; вы планируете реализовать его с помощью некоторой структуры ORM. В этом случае очень легко переключаться/переноситься между различными логиками доступа к данным, написанными в разных API, не затрагивая остальную часть вашего приложения, а другие слои не знают о ваших изменениях, так как ваш дизайн очень абстрагирован по своей природе.

Итог: Всегда работайте с абстрактным интерфейсом, а не против реализации.

Надеюсь, это полезно и комментарии оценили

Смежные вопросы