русский
Germany.ruForen → Архив Досок→ Programmierung

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

05.11.22 11:04
Re: Инъекции при наследовании
 
alex445 коренной житель
in Antwort AlexNek 05.11.22 09:22, Zuletzt geändert 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;

}

}

 

Sprung zu