Недавно я наткнулся на эту замечательную статью Чеда Парри, озаглавленную «Сделай сам» или «Сделай сам себе инъекцию зависимости». Я нахожусь в положении, когда я еще не готов использовать IoC Framework, но я хочу идти в этом направлении. Похоже, DIY-DI - хороший первый шаг.
Однако, прочитав статью, я все еще немного растерялся из-за создания объекта. Вот простой пример:
Используя ручное внедрение зависимости конструктора (не DIY-DI), вот как нужно построить объект Hotel:
PowerGrid powerGrid; // only one in the entire application
WaterSupply waterSupply; // only one in the entire application
Staff staff;
Rooms rooms;
Hotel hotel(staff, rooms, powerGrid, waterSupply);
Создание всех этих объектов зависимости затрудняет создание объекта Hotel в отдельности, что означает, что написание модульных тестов для Hotel будет затруднено.
Упрощает ли использование DIY-DI?
Какое преимущество предоставляет DIY-DI по сравнению с ручным внедрением зависимостей в конструктор?