I modelli architettonici non sono pensati per essere seguiti religiosamente. Come ogni altro modello nel software, sono soluzioni ben collaudate e definite per problemi specifici, ma abbastanza flessibili da adattarsi. Rispondere alle tue domande:
So, should Entities:
Dipende dal tuo dominio. A volte, hai bisogno di Entità in grado di trasformare o aggiornare il loro stato. D'altra parte, potrebbe essere necessaria una rappresentazione dei dati di un dato concetto, senza alcun stato (e.x .: classi di dati in Kotlin). Su Android, ad esempio, è piuttosto comune avere un modello anemico, e questo è OK perché si adatta al dominio il più delle volte.
Di nuovo, dipende dal tuo dominio. Gli interactor fungono già da confine tra le Entità e il resto del tuo sistema e, se non hai bisogno di riutilizzare le tue Entità in nessun'altra parte al di fuori della tua applicazione, non hai bisogno dello sforzo e / o della complessità aggiuntivi necessari per isolarli (supponendo che che il loro stato, se esistente, è ben incapsulato). Non aggiungere complessità in cui non ti serve :)
- be tested with the Interactors
Lo indovini - dipende dal tuo dominio. Se hai un codice specifico nelle tue Entità che vuoi assicurarti che funzioni, certo, lo collaudi. Tuttavia, non dovresti astenervi dal collaudare i tuoi Interact con le tue Entità perché 1) i test di integrazione sono belli, 2) gli interattori sono piuttosto inutili se non funzionano bene con le tue Entità, quindi potresti anche assicurarti che e 3 ) dato che probabilmente prenderai in giro repository e mapper, avrai una buona sensazione di quanto sia robusto l'intero livello di dominio.
Per farla breve, se comprendi il contesto del problema che stai risolvendo, non devi preoccuparti più di tanto di come applichi un'architettura pulita. Usalo come guida, naturalmente, ma fallo in un modo che ti sembra giusto o adatto a te, apprendi da esso e rifattalo in seguito, se necessario.