Я сталкиваюсь с проблемой дизайна относительно того, как проектировать мой DAL.
Как мы все знаем, в самом базовом определении DAL означает слой
который отвечает за связь с некоторым хранилищем данных (конечно, я не говорю о шаблоне хранилища),
обычно база данных. Теперь вот где подвох.
Некоторые из наших бизнес-объектов должны будут получать свои данные из базы данных, а некоторые - свои данные из других источников, то есть веб-сервисов.
Несколько наших членов в команде предложили, чтобы BO были достаточно умны, чтобы знать, следует ли вызывать DAL (который знает только, чтобы общаться с базой данных)
или позвоните в требуемый веб-сервис. Другие полагали, что это не может быть оптимальным решением, полагая, что все должно проходить через DAL, где он будет содержать, скажем, адаптеры или что-то еще, для каждого метода извлечения данных.
Как бы вы разработали систему с такими потребностями в доступе к данным?
Может ли какое-либо из предложенных решений быть достаточно хорошим в долгосрочной перспективе (второе может занять больше времени для разработки)
или нам нужен совершенно другой подход? Возможно, есть шаблон дизайна, который подходит для такого рода проблем ...
Спасибо,
Ави Шилон