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

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

07.11.22 08:23
Re: Инъекции при наследовании
 
Программист коренной житель
в ответ alex445 05.11.22 00:37
Хочу, чтобы в потомковых юзались некие объекты. Можно инъектировать их через конструкторы потомковых классов. Но ведь можно забыть, что в каждом потомковом должна быть такая инъекция.

Несколько раз прочитал, но так и не понял, что именно забыть и как это можно забыть? Можешь пояснить свой пример кодом?


если надо ЗАСТАВИТЬ использовать этот объект в потомках?

Заставить использовавать что-либо нельзя Даже если ты через 100 потомков протащишь какую-нибудь инекцию ты никогда не сможешь гарантировать, что все потомки используют именно этот объект. Да даже если там всего 1 потомок, ты тоже не можешь этого гарантировать :)


А то цепочка наследований может быть длинной, и потомков во всём дереве наследования может быть туева куча.

Значит проблемы с архитектурой. Тут либо рефакторить, либо страдать :)


И везде, в конструкторах всех потомков, писать base(service) как-то задалбывает. Тем более, что в реальности это выглядит куда длиннее - типаbase(IDatabaseContextService<MyDatabaseContext>)

Нет, в реальности это выглядит именно "base(service)". При передаче параметров не надо указывать их тип.

 

Перейти на