Data Access Object

Software-Entwurfsmuster
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 17. Mai 2007 um 20:40 Uhr durch VVVBot (Diskussion | Beiträge) (Bot: Ergänze: pt:Data Access Object (DAO)). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Data Access Object (DAO, deutsch „Datenzugriffsobjekt“) ist ein Entwurfsmuster, das den Zugriff auf unterschiedliche Arten von Datenquellen (z. B. Datenbanken) so kapselt, dass die angesprochene Datenquelle ausgetauscht werden kann, ohne den aufrufenden Code zu ändern. Dadurch soll die eigentliche Geschäftslogik von technischen Details befreit und flexibler einsetzbar werden. Insbesondere enthält der aufrufende Code keine SQL-Anweisungen und „weiß“ nicht, ob das DAO SQL oder eine andere Technik verwendet um die Daten zu beschaffen.

DAOs sind keine weitere Datenbankabstraktion.

DAOs sind für ein Speichermedium optimiert. Der Zugriff auf das Persistenzmedium wird über eine für den Anwendungsfall entworfene API vorgenommen. SQL-Anweisungen sind nur noch innerhalb eines SQL-DAOs enthalten.

DAOs minimieren den Portierungsaufwand einer Anwendung beim Wechsel des Speichermediums.

Anwendungsbeispiele

Das Muster findet sich nicht nur im J2EE-Umfeld, sondern auch in der Microsoft-Welt (MFC). Apple liefert ein ähnliches Konzept namens Enterprise Objects im Rahmen der WebObjects.

Microsoft hat inzwischen die Weiterentwicklung ihrer DAO-Schnittstelle beendet und setzt stattdessen auf ADO als Nachfolgetechnologie.