2015-08-17 23 views
5

Sono presenti entità utente e ruolo e servizi, livelli DAO per essi. Ho bisogno della lista dei ruoli da UserService.call service vs dao da un altro servizio

Quale layer devo usare da UserService? Metodo elenco chiamate di RoleService vs RoleDAO? Qual è l'uso comune e perché?

risposta

8

Normalmente il livello DAO è vicino al database, livello di servizio incapsula la logica aziendale, esegue transazioni o altre cose invece di chiamare DAO.

servizio chiamando un altro servizio è più comune perché

  1. tuo RoleService può avere un certo codice di business valutato, si può beneficiare di transazioni o messaggi che passano tramite JMS o si può avere una certa sicurezza su metodi di servizio in futuro. Quindi separare le preoccupazioni è una buona pratica.

  2. Facile da simulare i servizi e test (questo può essere sostenuto anche DAO può essere testato), ma separare la logica di business è un buon modo utilizzando le interfacce del livello di servizio.

Ma se tu non abbia alcuna logica di business a livello di servizio, si può evitare di codice ridondante, semplicemente utilizzando DAO (ma per il futuro si avrà un debito di codice per il refactoring se si pensa di servizio di business layer)

2

Chiamare il metodo elenco nello RoleService.

La logica di business attorno a Ruoli può cambiare un giorno e tutte le modifiche nel RoleService da gestire saranno inutili per tutto il codice che chiama direttamente DAO.

+0

Sì, ho pensato prima allo stesso modo. Ma Service chiamava DAO e ho pensato che fosse una buona idea (potrebbero esserci dei motivi) chiamare DAO solo dal livello di servizio perché il livello di servizio è usato per chiamare dao. I servizi di chiamata di servizi – Erlan

+1

sono assolutamente soddisfacenti – cahen