По-перше, я програміст початкового рівня; Насправді я закінчую ступінь AS на кінцевому проекті, що завершується літом. На моїй новій роботі, коли для мене не існує якогось проекту (вони чекають, щоб заповнити команду ще новими наймами), мені дали книги читати і вчитися, поки я чекаю - деякі підручники, інші не так багато (як Code Complete). Переглянувши ці книги, я звернувся до Інтернету, щоб дізнатися якнайбільше, і почав дізнаватися про SOLID та DI (ми розповідали дещо про принцип заміни Ліскова, але не про інші ідеї SOLID). Отож, як я дізнався, я сів робити, щоб краще вчитися, і почав писати якийсь код, щоб використовувати DI вручну (на комп'ютерах розвитку немає ніяких рамок DI).
Справа в тому, що я це роблю, я помічаю, що це відчуває себе знайомим ... і, схоже, це дуже схоже на роботу, яку я робив у минулому, використовуючи композицію абстрактних класів з використанням поліморфізму. Чи пропускаю тут більшу картину? Чи є щось про DI (принаймні від руки), що виходить за рамки цього? Я розумію можливість наявності конфігурацій не в коді деяких фреймворків DI, які мають великі переваги, що стосується зміни речей без необхідності перекомпіляції, але, роблячи це вручну, я не впевнений, чи це щось інше, ніж зазначено вище ... Деяке розуміння цього було б дуже корисно!