Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DI, наследование и статик / 9 сообщений из 9, страница 1 из 1
02.12.2019, 14:32
    #39897068
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Есть базовый класс, который использует некий объект, экземпляр которого извлекается из статика на этапе инициализации. Есть наследники, которые не используют этот экземпляр. Однако, принцип DI как бы требует протащить этот экземпляр через конструкторы. В результате наследники получают конструкторы, которые им на ногу не упали, и зависимости, которые они не используют.

Вопрос: следует ли в данном случае идти под конвоем принципов DI, создавая бесполезный код в наследниках, или можно на DI наплевать?
...
Рейтинг: 0 / 0
02.12.2019, 14:35
    #39897072
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Antonariy
принцип DI как бы требует протащить этот экземпляр через конструкторы.
Это что еще за принцип?
Делай конструкторы в наследниках те, которые тебе нравятся. DI сам разберется.
...
Рейтинг: 0 / 0
02.12.2019, 14:36
    #39897074
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Да и вообще, DI и статик в одном предложении - это сильно подозрительно.
...
Рейтинг: 0 / 0
02.12.2019, 14:48
    #39897078
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Shocker.Pro
Antonariy
принцип DI как бы требует протащить этот экземпляр через конструкторы.
Это что еще за принцип?
Делай конструкторы в наследниках те, которые тебе нравятся. DI сам разберется.
Так конструкторы в наследниках вообще не требуются.
...
Рейтинг: 0 / 0
02.12.2019, 14:51
    #39897080
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Я перестал тебя понимать. Ну нет конструкторов - значит есть по умолчанию. В базовом классе, соответственно, должен быть конструктор без параметров. Либо явно прописать конструктор в наследнике без параметров.
...
Рейтинг: 0 / 0
02.12.2019, 15:02
    #39897089
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Shocker.Pro
Я перестал тебя понимать. Ну нет конструкторов - значит есть по умолчанию. В базовом классе, соответственно, должен быть конструктор без параметров. Либо явно прописать конструктор в наследнике без параметров.
А я этого не понял.

Ладно, проехали, я понял, зачем нужно экземпляр по конструкторам тащить.
...
Рейтинг: 0 / 0
02.12.2019, 15:08
    #39897091
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Shocker.Pro
Да и вообще, DI и статик в одном предложении - это сильно подозрительно.
Издержки рефакторинга - перепиливаем сильно связанную архитектуру, плохо поддающуюся юнит-тестированию, внедряя DI.
...
Рейтинг: 0 / 0
02.12.2019, 15:14
    #39897096
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Antonariy
А я этого не понял.
- Если ты не написал конструктор в классе, значит существует конструктор без параметров (его создаст компилятор)
- Если в базовом классе у тебя нет конструктора без параметров (либо явно прописанного, либо там не должно быть вообще никаких конструкторов (не твой случай)), то в наследнике ты должен явно прописать конструктор с :base на какой либо из базовых конструкторов (при этом конструктор в наследнике может быть без параметров)
...
Рейтинг: 0 / 0
02.12.2019, 15:20
    #39897102
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DI, наследование и статик
Я не понял, какой в этом смысл в контексте моей задачи, а не в принципе.)

В общем, вопрос снят.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DI, наследование и статик / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]