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