siamo al centro di un progetto. È un servizio REST. Ora abbiamo i controller per gestire i Requestmappings e l'inoltro ai Servizi. Un esempio concreto abbiamo un UserController, GroupController, UserService e GroupService.
Il controller utente ha come iniezione UserService e GroupController ha come iniezione GroupService. (dipendenza uno a uno)
Quando creo / aggiorno / cancella un utente, lo scenario è semplice: userControllers dice al userService e lo fa.
Ora il sistema ha molti altri controller / servizi che verranno aggiunti. Ma quello che non so è: qual è il modo migliore quando devo mescolare l'azione utente / di gruppo? Ad esempio: devo aggiungere un utente in un gruppo. Ma devo verificare che l'utente esista, che il gruppo esista e dopo aver salvato le informazioni nell'utente (Entità / DTO) che l'utente è ora porta di questo gruppo.
1) schould gestisco tutto da userController: -userService.checkUser () -groupService.checkGroup () -userService.updateUser ()
2) o schould gestisco al da userService: -userService.addUser () (nel userService quindi: -checkUser () -checkGroup () -updateUser () )
Nella soluzione 1 ciò che non mi piace è l'iniezione di altri servizi che non appartengono agli utenti Nella soluzione 2 ho l'idea di replicare concetti esistenti sul gruppoServices ...
L'esempio sopra è solo una parte del grande quadro. Ma quello che vorrei capire è come posso progettare questa parte per non avere molta dipendenza e molta replicazione del codice?