169 похожих чатов

Всем привет. Вопрос к гуру DI (dependency injection). Я во

всех проектах использую стандартный DI через конструктор, но на практике столкнулся с проблемой, если в проекте к примеру 100 VM и каждая наследуется от ViewModelBase и по каким то причинам во ViewModelBase понадобилось добавить новую иньекцию, то придется в каждой VM добавлять иньекцию в конструктор и затем передовать в base. Это очень не удобно.

В одном из проектов видел, что во VM передаются не иньекции, а единственный параметр IContext, с единственным методом Reslove. Таким образом даже если во ViewModelBase понадобиться новая зависимость, то достаточно будет прописать одну строчку в конструкторе а не переписывать все уже существующие ViewModel.

Собственно вопрос, может кто то уже использовал данный метод, или хотел но отказался по ряду каких то причин, какие подводные камни могут всплыть при использовании такого подхода?

2 ответов

18 просмотров

Это же ServiceLocator

Ну ты у меня спрашивал) и я тебе ответил) Во вьюмодель особенно в базовую должны прокидываться минимум зависимостей. Если зависимостей много пиши классы юзкейсов(которые интеракторы) и прокидывай сервисы туда, а не в базовую вьюмодель, а во вьюмодели уже эти интеракторы прокидывай. В любом случае как по мне гораздо правильнее все делать через конструктор(+есть хоткеи для генерации конструкторов в классах) потому как это важно для возможностей тестирования

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта