Data Access Object

Multi tool use
Multi tool use



Data Access Object (DAO, englisch für Datenzugriffsobjekt) ist ein Entwurfsmuster, das den Zugriff auf unterschiedliche Arten von Datenquellen (z. B. Datenbanken, Dateisystem) so kapselt, dass die angesprochene Datenquelle ausgetauscht werden kann, ohne dass der aufrufende Code geändert werden muss. Dadurch soll die eigentliche Programmlogik von technischen Details der Datenspeicherung befreit werden und flexibler einsetzbar sein. DAO ist also ein Muster für die Gestaltung von Programmierschnittstellen (APIs). Wenn eine Programmiersprache keine Trennung von Schnittstellendefinition und -Implementierung ermöglicht, muss ein DAO die definierte Schnittstelle unmittelbar implementieren.



Eigenschaften |


  • DAOs abstrahieren den Zugriff auf Datenbanken nicht vollständig, da sie nicht für die Transformation der Daten in die Struktur der Datenbank verantwortlich sind.

  • DAOs sind jeweils für ein spezielles Speichermedium optimiert. Der Zugriff auf dieses Medium wird über das vom DAO vorgegebene bzw. zu implementierende API vorgenommen.

  • DAOs minimieren den Portierungsaufwand einer Anwendung beim Wechsel des Speichermediums.

Eng verwandt mit dem Data Access Object ist das Entwurfsmuster Transferobjekt. Dieses übernimmt im Zusammenspiel mit dem DAO die Transformation der aus der Datenquelle kommenden Daten in die von der Applikation gewünschte Form. Bei der objektrelationalen Abbildung werden so objektorientierte Daten in relationale Form transformiert.



Anwendungsbeispiele |


Das Muster findet sich auch im J2EE-Umfeld. Apple liefert ein ähnliches Konzept namens Enterprise Objects im Rahmen der WebObjects.



Weblinks |



  • Core J2EE Patterns - Data Access Object. In: Core J2EE Patterns Catalog. Sun Microsystems

.mw-parser-output div.NavFrameborder:1px solid #A2A9B1;clear:both;font-size:95%;margin-top:1.5em;min-height:0;padding:2px;text-align:center.mw-parser-output div.NavPicfloat:left;padding:2px.mw-parser-output div.NavHeadbackground-color:#EAECF0;font-weight:bold.mw-parser-output div.NavFrame:afterclear:both;content:"";display:block.mw-parser-output div.NavFrame+div.NavFrame,.mw-parser-output div.NavFrame+link+div.NavFramemargin-top:-1px.mw-parser-output .NavTogglefloat:right;font-size:x-small







3TgK1S6BS8o2I2 lT CKpbzHEwfIdx75alUpj4nWErC,Hrn0BTK8n,QnHS8 4
1B xlRFY,S 9m8Gy6eVCnJqoVRU iLfggbzQKx,FcTcrJQO4

Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Ruanda

Ondo