Sto sviluppando un'app per Android la cui architettura si basa sul ben noto Uncle's Bob Clean Architecture .
Ho il seguente caso d'uso:
Convalida iscrizione utente
Si basa su questa descrizione del caso d'uso (scenario principale di successo)
-
Verifica se l'avviso di convalida è già stato mostrato
-
Sì - > Vai al passaggio 6
-
No - > Vai al passaggio 2
-
-
Verifica se l'utente ha una connessione Internet
-
Sì - > Accedi al repository remoto
-
No - > Accedi al repository locale
-
-
Il sistema ottiene l'hash della sottoscrizione dell'utente nel repository
-
Il sistema genera una chiave per decrittografare l'hash dell'abbonamento
-
Il sistema decodifica l'hash utilizzando la chiave generata in precedenza e restituisce lo stato dell'abbonamento ( valido / non valido )
-
Lo stato è valido: il sistema salva l'abbonamento sul dispositivo e modifica il tipo di utente in Premium
-
Lo stato non è valido: il sistema salva l'abbonamento sul dispositivo cambia il tipo di utente su Libero
-
-
Il caso d'uso termina
Sto affrontando un problema nel passaggio 2. Come puoi vedere, ho bisogno di cambiare il mio repository durante l'esecuzione del caso d'uso, ma non conosco il modo migliore per implementarlo.
Una delle mie idee era di iniettare il repository attraverso il metodo injection (usando una sorta di setRepository(Repository repository
) invece dell'iniezione del costruttore. Va bene?