Во-первых, я программист начального уровня; На самом деле, я заканчиваю степень AS с финальным замковым проектом в течение лета. На моей новой работе, когда у меня нет какого-то проекта (они ждут, чтобы заполнить команду новыми сотрудниками), мне дали книги для чтения и обучения, пока я жду - одни учебники, другие не так много (как Code Complete). Изучив эти книги, я обратился к Интернету, чтобы узнать как можно больше, и начал изучать SOLID и DI (мы говорили о принципе замены Лискова, но не о других идеях SOLID). Итак, как я узнал, я сел для того, чтобы учиться лучше, и начал писать код для использования DI вручную (на компьютерах разработчиков нет каркасов DI).
Дело в том, что когда я это делаю, я замечаю, что это кажется знакомым ... и кажется, что это очень похоже на работу, которую я проделал в прошлом, используя композицию абстрактных классов с использованием полиморфизма. Я скучаю по большей картине здесь? Есть ли что-то в DI (по крайней мере, вручную), что выходит за рамки этого? Я понимаю возможность того, что конфигурации не будут присутствовать в коде некоторых DI-фреймворков и будут иметь некоторые большие преимущества по сравнению с изменениями без перекомпиляции, но когда я делаю это вручную, я не уверен, отличается ли это от указанных выше ... Некоторое понимание этого было бы очень полезно!