Если вы внедрите контейнер, вы не сделаете ясными зависимости.На самом деле, вы скрываете их больше, чем раньше.Если у вас есть такой класс ...
class DocumentCreator(IFileNamer fileNamer, IRepository repository)
{ ... }
... вы можете увидеть, что это за зависимости.Вы также можете легко смоделировать эти зависимости для модульного тестирования, чтобы гарантировать, что вы изолируете DocumentCreator и можете знать, что любые неудачи теста являются результатом его кода, а не кода в одной из его зависимостей.с другой стороны, вы делаете это ...
class DocumentCreator(IDependencyContainer container)
{ ... }
... вы скрыли зависимости.Без изучения внутренних элементов класса вы не можете знать, что для этого требуются IFileNamer и IRepository.
Также вы не можете легко узнать, какие макеты нужно поместить в контейнер для тестирования DocumentCreator.Дразнить IDependencyContainer вам совсем не поможет;ваш класс все равно не пройдёт тестирование, потому что контейнер не будет содержать IFileNamer и IRepository, если вы не изучите внутреннее содержимое класса, чтобы убедиться, что они необходимы.