2010-09-18 4 views
0

Как продолжение к моему предыдущему вопросу (см https://stackoverflow.com/questions/3737848/creating-a-loosely-coupled-scalable-software-architectureАбстрагирование DataLayer (DAL) применения трехуровневой

Кто-то предлагает также РеФеРаТ DAL, как я отведенной BLL из представительского уровня на моем три уровня проекта Любое предложение о том, как это сделать? Мне также нужна фабрика между BLL и DAL? Мне нужны ваши ребята. Спасибо.

+2

Я не понимаю, почему кто-то голосует, чтобы закрыть это, это кажется совершенно хорошим вопросом. Он просит передовые методы и подходы к абстрагированию доступа к данным. Это похоже на то, что мы хотим способствовать. Может быть, немного переформулировать вопрос? – David

+0

@ Давид: его предыдущий вопрос очень подробный, с довольно небольшим контекстом. Этого продолжения не хватает. OP получит гораздо лучшие ответы, ИМО, если он отредактирует свой предыдущий вопрос с этим. –

ответ

2

Интересно - я бы поставил абстракцию между BL и DAL до того, как я 'd сделать это для слоя презентации.

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

  • Да, вам нужна фабрика; но вы можете включить это в общий класс/сборку и вернуть его только object, который затем можно передать, когда он будет возвращен - например, в точке BL, где он вызывается.
  • (для полноты) с использованием Activator.CreateInstance() (как вы использовали в своем другом вопросе) - это правильный путь.
  • Для DAL я стараюсь использовать значения, хранящиеся в конфиге (в качестве аргументов для перехода на заводскую); не часто бывает так часто менять реализацию DAL, поэтому конфигурация работает хорошо для меня.
  • Соблюдайте Interface Segregation Principle (ISP) при разработке контракта/абстракции между BL и DAL - если вы сделаете это правильно, вы сможете одновременно смешивать и комбинировать различные физические реализации DAL.
  • Если вы храните DTO и завод в общей сборке (возможно, один и тот же), то легко повторно использовать их с BL и различными реализациями DAL - с предостережением, что вы держите этот общий класс лишенным зависимостей. Если вы это сделаете, вы сможете добавить/удлить возможности DAL без повторной компиляции и повторной развертывания всей системы.

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

  • Нет связанных вопросов^_^