многоуровневом приложении можно возложить эту обязанность всецело на самое начало кода приложения в корне композиции (Composition Root).
внедрение через конструктор – это статическое определение списка требуемых зависимостей путем указания их конструктору класса в качестве параметров
у класса должна быть только одна причина для внесения изменений1.
Если поместить SQL-инструкции в представление, содержащее HTML-разметку, то трудно будет кому-то не согласиться, что изменения в разметке будут случаться в другое время, с другой периодичностью и по другим причинам, нежели изменения в SQL-инструкциях. Наши SQL-инструкции изменяются при изменении нашей модели данных или же при необходимости настройки производительности. А наша разметка изменяется, когда требуется изменить внешний вид веб-приложения. Это разные вещи, меняющиеся по разным причинам. Поэтому непосредственное размещение SQL-инструкций в представлении является нарушением SRP-принципа