Использование шаблонов / используют случаи для DI или когда начать использовать его

StackOverflow https://stackoverflow.com/questions/3066396

Вопрос

Я не уверен, насколько случаи использования следует использовать в приложении. Я знаю, что инъекционные услуги, такие как PlaceService или CalculationService etc очень хорошо подходит, но я также должен создать свои доменные объекты с ди User? Что, если User имеет только один конструктор, который требует первого и фамилия. Это ребрен с ди?

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

Я использую резинку в первую очередь.

Это было полезно?

Решение

Правило, которое я использую, в целом, в пользу для введения зависимости, за исключением случаев, когда объект может быть сконструирован с чисто примитивными значениями, и нет / минимальный шанс, что объект может быть заменен другой реализацией.

Однако для доменных объектов, особенно если ваши объекты не являются модель анемии домена, т.е. где объекты - это просто сумки Getter и Setters, может быть полезно иметь объекты, которые, например, могут сохраняться в хранилище данных и т. Д. Для тех вида объектов, впрыска зависимости и Сальва может быть мощной комбинацией.

Убийца имеет определенное решение типов задачи, представляемых объектами, такими как ваш пользовательский объект под названием AssistedInject., Хотя подобные вещи также возможны с другими легкими контейнерами или использованием чего-то конструктора или шаблонов адаптеров.

Другие советы

Ответ IG0774 - хорошая отправная точка. Кроме того, я хотел бы предложить это правило:

В терминологии Дизайн, управляемый доменом, вы должны ди для Сервисы, но не для объекты или Значение объектов.

Другими словами, Di хорошо вписывается с концептуально долгоживут, объекты без гражданства, которые обычно используются одно или известное число.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top