Реальные случаи использования веб-сайтов / приложений, когда внедрение зависимостей было полезным (исключая юнит-тестирование / макеты)? - PullRequest
1 голос
/ 04 апреля 2010

В каком конкретном веб-проекте (ах) (вам, разумеется, не нужно называть их по имени), в частности, над какой частью веб-приложения / веб-сайта, над которой вы работали, внедрение зависимостей оказалось доказанным хороший выбор. Можете ли вы привести конкретные примеры, где вы фактически заменили один компонент на другой с помощью DI в течение жизненного цикла проекта, исключая случаи для пробного / модульного тестирования?

1 Ответ

3 голосов
/ 04 апреля 2010

Внедрение зависимостей не связано с заменой компонентов. Речь идет о разъединении кода, он помогает поддерживать высокий уровень сцепления и низкий уровень сцепления.

Замена компонентов - это всего лишь одна (и не слишком часто встречающаяся в моем опыте) вещь, которую вы можете делать с DI.

Если вам действительно нужны примеры замены компонентов:

  • У меня была служба факсов, которая подключалась к удаленному серверу факсов Windows для отправки факсов. Я заменил это службой, которая вместо этого отправляет факсы через j2.com.
  • У меня был сервис для поиска "вещей". Сначала эта служба была реализована для СУБД, а затем была заменена поиском по экземпляру Solr .
  • Кэш приложения был абстрагирован как компонент. Сначала он был реализован с использованием встроенного кэша ASP.NET, затем он был заменен с использованием memcached.
...