Я вижу много примеров Java, использующих внедрение зависимостей с закрытыми полями без открытого установщика, например:
public SomeClass {
@Inject
private SomeResource resource;
}
Но это плохая идея, когда инъекцию следует выполнять вручную, например, в модульных тестах.
Есть несколько возможностей решить эту проблему:
- добавить публичный сеттер:
setSomeResource(SomeResource r)
- сделать поле публичным
- сделать пакет поля защищенным
Я бы хотел избежать сеттера, так как в нем ничего не происходит. Так что я бы предпочел публичную или защищенную. Что вы порекомендуете?