Использование шаблонов / используют случаи для DI или когда начать использовать его
-
28-09-2019 - |
Вопрос
Я не уверен, насколько случаи использования следует использовать в приложении. Я знаю, что инъекционные услуги, такие как PlaceService
или CalculationService
etc очень хорошо подходит, но я также должен создать свои доменные объекты с ди User
? Что, если User
имеет только один конструктор, который требует первого и фамилия. Это ребрен с ди?
Должен ли я использовать DI, чтобы создать экземпляры для интерфейсов набора / списка или это чистый излишек?
Я использую резинку в первую очередь.
Решение
Правило, которое я использую, в целом, в пользу для введения зависимости, за исключением случаев, когда объект может быть сконструирован с чисто примитивными значениями, и нет / минимальный шанс, что объект может быть заменен другой реализацией.
Однако для доменных объектов, особенно если ваши объекты не являются модель анемии домена, т.е. где объекты - это просто сумки Getter и Setters, может быть полезно иметь объекты, которые, например, могут сохраняться в хранилище данных и т. Д. Для тех вида объектов, впрыска зависимости и Сальва может быть мощной комбинацией.
Убийца имеет определенное решение типов задачи, представляемых объектами, такими как ваш пользовательский объект под названием AssistedInject., Хотя подобные вещи также возможны с другими легкими контейнерами или использованием чего-то конструктора или шаблонов адаптеров.
Другие советы
Ответ IG0774 - хорошая отправная точка. Кроме того, я хотел бы предложить это правило:
В терминологии Дизайн, управляемый доменом, вы должны ди для Сервисы, но не для объекты или Значение объектов.
Другими словами, Di хорошо вписывается с концептуально долгоживут, объекты без гражданства, которые обычно используются одно или известное число.