Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Инъекции при наследовании

05.11.22 11:04
Re: Инъекции при наследовании
 
alex445 коренной житель
в ответ AlexNek 05.11.22 09:22, Последний раз изменено 05.11.22 11:08 (alex445)
AddTransient

https://www.c-sharpcorner.com/article/understanding-addtra...

Это всё "области видимости", а передавать-то всё равно придётся.


можно еще поизвращаться через статический класс, но это новые явные зависимости.

Вот по идее статический класс (фабрика там или сам экземпляр сервиса) как раз самое то. Не понимаю, почему статика это зависимость? Зависимость, это когда у вас в клиентском коде объекты конкретных типов создаются, без интерфейсов. Статика применяется по месту и не засоряет всю цепочку конструкторов или методов портянкой передачи зависимости. Статическая фабрика, возвращающая интерфейсные объекты - и от зависимостей от конкретных типов ушли, и мусор в сигнатуре методов и конструкторов не множим.


Ещё бред - в обязон хранить ссылку на переданный объект. Точнее, не само хранение, а та куча кода, которая должна быть написана ради этого. Ради одной ссылки на один сервис я должен добавить как минимум поле (а то и свойство), код передачи параметра, код присвоения параметра полю. Вот нахрена вся эта простыня очевиднейшего кода?


class Base

{

protected IService _service;


public Base(IService service)

{

_service = service;

}

}

 

Перейти на