2010-06-24 9 views
6

DISCLAIMER: Sono quasi sicuro di aver già visto la stessa domanda ma non riesco a trovarlo ora. Se qualcuno trova questa domanda, per favore, dai un link.Convenzioni di denominazione per il livello di persistenza: DAO vs Manager vs ...?

ho sentito almeno due pareri sul nome migliore per le classi che implementa le operazioni CRUD: qualcuno dice che DAO è un nome classico e tutti sanno cosa vuol dire, ma altri dicono che Manager corrisponde molto meglio la funzionalità CRUD.

Esistono regole univoche quando devo scegliere uno o l'altro (o ancora un altro) nome?

risposta

6

Sicuramente non mi piace Manager; "gestire" qualcosa potrebbe significare (ed è usato per significare) tutti i tipi di cose. Se temi che la gente non sappia cosa significa DAO, potresti sempre definirlo come "DataAccess", per esempio. Ma trovo che DAO sia ampiamente compreso.

Un altro approccio è utilizzare Repository pattern e chiamare la classe SuchAndSuchRepository. Questo non è necessariamente la stessa cosa di un DAO (potrebbe avvolgere uno o più DAO) ma può fornire un luogo chiaramente chiamato per ottenere i tuoi oggetti - se voglio un oggetto Person, so di cercare il PersonRepository .

0

Direi Manager, perché ogni "ipotesi" può causare un caos. E in questo caso penso che stai assumendo che ogni organismo conosca DAO.

2

+1 per DAO.
Il gestore è vago e potrebbe essere applicato a molte altre informazioni oltre a quelle di DAO.
ad es. swing.DesktopManager, ErrorManager, FontManager, JavaFileManager, XMLEntityManager sono alcune delle oltre 200 classi attualmente disponibili nel mio worskapce IDE, nessuna delle quali sembra avere nulla a che fare con la persistenza del database.

Problemi correlati