Вот еще одна перспектива глубоко из окопов! Уровень доступа к данным - это уровень программной абстракции, который скрывает сложность / реализацию фактического получения данных. Приложения запрашивают уровень доступа к данным (см. Шаблон проектирования DAO), чтобы «получить мне это» или «обновить это» и т. Д. (Косвенное обращение). Уровень доступа к данным отвечает за выполнение специфических для реализации операций, таких как чтение / обновление различных источников данных, таких как Oracle, MySQL, Cassandra, RabbitMQ, Redis, простая файловая система, кэш или даже делегирование другому уровню обслуживания данных. ,
Если вся эта работа происходит внутри одного компьютера и в одном и том же приложении, термин Уровень обслуживания данных эквивалентен Фасаду обслуживания (косвенное указание). Он отвечает за обслуживание и делегирование вызовов приложений нужному уровню доступа к данным.
Несколько запутанно, в мире распределенных вычислений или в сервисно-ориентированной архитектуре уровень обслуживания данных может фактически представлять собой веб-службу, которая действует как отдельное приложение. В этом контексте делегаты уровня обслуживания данных получили запросы данных восходящего потока приложения к правильному уровню доступа к данным. В этом случае веб-службы косвенно обращаются к данным из приложений - приложению нужно только знать, какую службу вызывать для получения данных, поэтому, как правило, в распределенных вычислительных средах этот подход уменьшает сложность приложений (и всегда есть исключительные случаи)
Так что, для ясности, приложение использует DSL и DAL. DSL в приложении должен общаться с DAL в том же приложении. У DAL есть выбор использования одного источника данных или делегирование другому веб-сервису. Веб-служба DSL может делегировать работу DAL для этого запроса. Действительно, для одного запроса веб-службы можно использовать несколько источников данных для ответа на данные.
Учитывая все сказанное с прагматической точки зрения, только когда системы становятся все более сложными, следует уделять больше внимания архитектурным образцам. Хорошая практика - делать все правильно, но нет смысла излишне покрывать золотом свою работу. Помните ЯГНИ? Ну, это не резонирует, придет время, когда это необходимо!
В заключение: знаменитый афоризм Дэвида Уилера гласит: «Все проблемы в области компьютерных наук могут быть решены с помощью другого уровня косвенности»; [1] это часто намеренно неправильно цитируют, используя «уровень абстракции», заменяемый уровнем окольные». Следствие Кевлина Хенни к этому таково: «… за исключением проблемы слишком большого числа уровней косвенности».