Ho un PersonEditViewModel
che ha bisogno di altri due oggetti, personId
e PersonRepository
. PersonRepository
è ottenuto da un localizzatore di servizio:
private final int personId;
public PersonEditViewModel(int id) {
this.personId = id;
this.personRepository = ServiceLocator.get(PersonRepository.class);
}
Ma vorrei usare l'iniezione di dipendenza (DI, IoC) per ottenere PersonRepository
, preferibilmente via costruttore:
public PersonEditViewModel(PersonRepository pr) {
this.personRepository = pr;
}
Il mio problema è, come posso passare personId
al costruttore nel pattern DI? Devo fare un setter per id - allora DI cambia la logica del PersonEditViewModel
(il campo personId
non può essere definitivo)? E 'insufficienza del pattern DI che non posso passare oggetti dati al costruttore, o devo cambiare idea e progettare il mio ViewModels in un altro modo, probabilmente usare altri pattern per passare oggetti dati a loro?
Modifica: ha modificato la mia domanda utilizzando personId
e PersonRepository
per essere più vicini alle situazioni comuni.