torna all'elenco degli elementi della sezione dataAccess

# Elemento di catalogo: DataAccessObject

## Descrizione

Il DataAccessObject rappresenta l'astrazione dell'oggetto che effettua l'accesso ai dati. In particolare un DataAccessObject agisce su una singola Table, anche se in alcuni casi e per alcune funzionalità è possibile che vengano coinvolte nell'accesso ai dati più tabelle.

## Caratteristiche (features)

cod. | nome | descrizione
DAO001 | basic DTO for main table | Il DTO associato alle operazioni di un DataAccessObject è normalmente costruito come l'insieme delle property corrispondenti a ciascuna delle colonne della Table associata al DataAccessObject. Gran parte delle operazioni previste per il DataAccessobject utilizzano questo DTO come input/output.
DAO002 | lookup resolver | E' possibile associare ad un DataAccesObject uno o più LookupResolver (uno per ciascuna delle foreign key definite per la tabella associata al DataAccessObject). LookupResolver
DAO003 | caching strategy: Almost Stable Data | E' possibile dichiarare i dati della tabella associata al DataAccessObject come altamente stabili. In queste condizioni di movimentazione dei dati è possibile fare in modo che alcune delle operazioni di lettura (tipicamente la lettura per chiave primaria) siano ottimizzate, evitando la realizzazione della query ad ogni singola richiesta. E' possibile definire puntualmente il tempo di permanenza in cache del dato.
DAO004 | caching strategy: Highly Variable Data | E' possibile dichiarare i dati della tabella associata al DataAccessObject come altamente variabili. In queste condizioni di movimentazione dei dati non è possibile implementare meccanismi di caching sulle operazioni di lettura del DataAccessObject, e la query viene realizzata ad ogni singola richiesta.

## Grado di implementazione delle varie caratteristiche

Nella tabella seguente è riportato il grado di implementazione delle varie caratteristiche/funzioni dell'elemento DataAccessObject nelle differenti implementazioni.

cod | feature | datagen
--- | --- | ---
2.0.0
standard
DAO001 | basic DTO for main table |
DAO002 | lookup resolver |
DAO003 | caching strategy: Almost Stable Data |
DAO004 | caching strategy: Highly Variable Data |