Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 DI, наследование и статик  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 73056
Есть базовый класс, который использует некий объект, экземпляр которого извлекается из статика на этапе инициализации. Есть наследники, которые не используют этот экземпляр. Однако, принцип DI как бы требует протащить этот экземпляр через конструкторы. В результате наследники получают конструкторы, которые им на ногу не упали, и зависимости, которые они не используют.

Вопрос: следует ли в данном случае идти под конвоем принципов DI, создавая бесполезный код в наследниках, или можно на DI наплевать?
2 дек 19, 14:32    [22030355]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21073
Antonariy
принцип DI как бы требует протащить этот экземпляр через конструкторы.
Это что еще за принцип?
Делай конструкторы в наследниках те, которые тебе нравятся. DI сам разберется.
2 дек 19, 14:35    [22030363]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21073
Да и вообще, DI и статик в одном предложении - это сильно подозрительно.
2 дек 19, 14:36    [22030365]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 73056
Shocker.Pro
Antonariy
принцип DI как бы требует протащить этот экземпляр через конструкторы.
Это что еще за принцип?
Делай конструкторы в наследниках те, которые тебе нравятся. DI сам разберется.
Так конструкторы в наследниках вообще не требуются.
2 дек 19, 14:48    [22030377]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21073
Я перестал тебя понимать. Ну нет конструкторов - значит есть по умолчанию. В базовом классе, соответственно, должен быть конструктор без параметров. Либо явно прописать конструктор в наследнике без параметров.
2 дек 19, 14:51    [22030381]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 73056
Shocker.Pro
Я перестал тебя понимать. Ну нет конструкторов - значит есть по умолчанию. В базовом классе, соответственно, должен быть конструктор без параметров. Либо явно прописать конструктор в наследнике без параметров.
А я этого не понял.

Ладно, проехали, я понял, зачем нужно экземпляр по конструкторам тащить.
2 дек 19, 15:02    [22030392]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 73056
Shocker.Pro
Да и вообще, DI и статик в одном предложении - это сильно подозрительно.
Издержки рефакторинга - перепиливаем сильно связанную архитектуру, плохо поддающуюся юнит-тестированию, внедряя DI.
2 дек 19, 15:08    [22030396]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21073
Antonariy
А я этого не понял.
- Если ты не написал конструктор в классе, значит существует конструктор без параметров (его создаст компилятор)
- Если в базовом классе у тебя нет конструктора без параметров (либо явно прописанного, либо там не должно быть вообще никаких конструкторов (не твой случай)), то в наследнике ты должен явно прописать конструктор с :base на какой либо из базовых конструкторов (при этом конструктор в наследнике может быть без параметров)
2 дек 19, 15:14    [22030403]     Ответить | Цитировать Сообщить модератору
 Re: DI, наследование и статик  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 73056
Я не понял, какой в этом смысл в контексте моей задачи, а не в принципе.)

В общем, вопрос снят.
2 дек 19, 15:20    [22030413]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить