Quali sono le responsabilità di un Manager e dei livelli Dao

2

In diversi progetti abbiamo utilizzato i seguenti livelli:

  1. Azione (ha 1 o più gestori)
  2. Manager (ha 1 o più Daos)
  3. Dao

Ma la maggior parte delle volte il manager chiama solo il dao. Usiamo la classe manager per preparare la data da inviare al db o per preparare i dati da inviare all'azione (è una buona pratica?).

  1. Quali sono le responsabilità di un manager e delle classi Dao?
  2. Dobbiamo avere un manager per ogni dao o possiamo semplicemente usare direttamente il dao?
  3. Come gestisco le situazioni in cui è necessario utilizzare la funzionalità implementata in diversi gestori?

PS: So che non esiste un martello d'oro quindi lo restringerò ai tipi di app che facciamo, generalmente le webapp per le banche.

Grazie

    
posta Liviu T. 24.11.2010 - 11:31
fonte

2 risposte

2
  1. What are the responsibilities of a Manager and of the Dao classes?

La responsabilità del DAO è l'astrazione sull'accesso ai dati. La responsabilità del gestore di organizzare ed eseguire la logica di business dell'applicazione - il gestore utilizza i DAO per realizzare questo.

  1. Do we have to have a manager for every dao or can we just use the dao directly?

Penso che dovresti usare direttamente i DAO. Ancora una volta, affinché il gestore possa svolgere i suoi compiti, potrebbe aver bisogno di utilizzare diversi DAO per manipolare i dati - non vedo un problema con questo.

  1. How do I handle situations where I need to use the functionality implemented in several Managers?

Potrebbe trattarsi di un odore di codice necessario per raggruppare (rifattorizzare) determinate logiche o funzionalità in un nuovo gestore o (anche se potrebbe essere estremo) un altro livello di servizio per organizzare l'azione tra i gestori.

    
risposta data 24.11.2010 - 17:01
fonte
2

Questa è solo la mia preferenza:

  • Le classi di accesso ai dati sono responsabili per ogni tabella
  • I manager sono responsabili delle logiche di business di basso livello e della coerenza tra alcune tabelle di dati. Usano DAO per svolgere i loro compiti.
  • I servizi forniscono servizi aziendali di livello superiore che richiedono collaborazione tra i gestori (manager dei gestori).
  • I servizi dovrebbero essere abbastanza indipendenti e granulari che gestiscono un insieme di dati e un dominio aziendale nel sistema.
  • Un servizio dovrebbe essere abbastanza maturo in modo che possa essere (e non necessariamente sarà) esposto su WebApi / WebService ecc. come servizio indipendente nell'organizzazione.
  • I servizi hanno un'interfaccia ben definita e possono essere iniettati ad altri oggetti per l'esecuzione e il business case e2e.
  • I servizi non dovrebbero avere molta dipendenza da altri servizi e non interagiscono con nessuno o con pochissimi altri servizi per l'esecuzione di un caso aziendale e2e.
risposta data 12.02.2018 - 13:04
fonte

Leggi altre domande sui tag