Внедрение зависимостей в .NET
книга
Внедрение зависимостей позволяет уменьшить сильное связывание между программными компонентами. Вместо жесткого кодирования зависимостей (например, драйвера какой-либо базы данных) внедряется список сервисов, в которых может нуждаться компонент. После этого сервисы подключаются третьей стороной.