Data Access Object

Data Access Object – obiekt dostępu do danych — abstrakcja źródła danych; komponent dostarczający jednolity interfejs do komunikacji między aplikacją a źródłem danych (np. bazą danych czy plikiem)[1]. Jest często łączony z innymi wzorcami projektowymi. DAO jest obiektem odwzorowującym źródło danych, enkapsulującym wszystkie dane przesyłane do i ze źródła[1]. Dzięki DAO, aplikacja nie musi znać sposobu oraz ostatecznego miejsca składowania swoich danych, a ewentualne modyfikacje któregoś z czynników nie pociągają za sobą konieczności modyfikowania jej kodu źródłowego[2]. Komponent ten jest często stosowany w modelu MVC (Model-View-Controller) do oddzielenia dostępu do danych od logiki biznesowej i warstwy prezentacji[3]. Gotowe narzędzia do korzystania z DAO wchodzą w skład wielu popularnych języków programowania oraz platform (np. Java EE, Ruby on Rails)[4].

Wydajność

Dodanie DAO do aplikacji powoduje pojawienie się kolejnej warstwy interfejsu oraz zwiększenie ilości kodu, który musi zostać wykonany do realizacji dostępu do danych. Z tego powodu w aplikacjach, dla których wydajność ma krytyczne znaczenie, rezygnuje się z DAO, aby zapewnić jak najszybsze działanie aplikacji.[potrzebny przypis]

Przypisy

  1. a b Mauricio F.M.F. Aniche Mauricio F.M.F., Gustavo A.G.A. Oliva Gustavo A.G.A., Marco A.M.A. Gerosa Marco A.M.A., Are the Methods in Your Data Access Objects (DAOs) in the Right Place? A Preliminary Study, IEEE, wrzesień 2014, s. 47–50, DOI: 10.1109/MTD.2014.14, ISBN 978-1-4799-6791-9 [dostęp 2024-07-19] .
  2. ChristineCh. Mayr ChristineCh., UweU. Zdun UweU., SchahramS. Dustdar SchahramS., Model-Driven Integration and Management of Data Access Objects in Process-Driven SOAs, PetriP. Mähönen, KlausK. Pohl, ThierryT. Priol (red.), Berlin, Heidelberg: Springer, 2008, s. 62–73, DOI: 10.1007/978-3-540-89897-9_6, ISBN 978-3-540-89897-9 [dostęp 2024-07-19]  (ang.).
  3. MaurícioM. Aniche MaurícioM. i inni, Code smells for Model-View-Controller architectures, „Empirical Software Engineering”, 23 (4), 2018, s. 2121–2157, DOI: 10.1007/s10664-017-9540-2, ISSN 1573-7616  (ang.).
  4. AlainA. Trottier AlainA., Sun Java 2 Enterprise Edition (J2EE) Web Component Developer Exam: Exam 310-080, Que Publishing, 2002, s. 36, ISBN 978-0-7897-2821-0  (ang.).

Zobacz też

  • mapowanie obiektowo-relacyjne
  • obiekt transferu danych
  • wzorzec projektowy

Linki zewnętrzne

  • Core J2EE Patterns – Data Access Object