Внедрение в конструктор дает вам больший контроль над созданием объекта, так как использование встраивания в поле означает ограничить создание вашего класса отражением и полагаться на поддержку этих конкретных аннотаций внедрения.Кроме того, наличие четких зависимостей от конструктора позволяет легче поддерживать и тестировать код.
Насколько я знаю, нет никакой разницы в отношении того, как он хранится на графе кинжалов, кроме вызова конструкторавсегда быстрее, чем внедренные поля.
По моему мнению, мы должны использовать свойство, когда у нас нет контроля над созданием объекта, как в Activities
и Fragments
, например.