Przejdź do zawartości

Dyskusja:Data Access Object

Treść strony nie jest dostępna w innych językach.
Z Wikipedii, wolnej encyklopedii

Data Access Object – jest to komponent dostarczający jednolity interfejs do komunikacji między aplikacją, a źródłem danych (np. bazą danych czy plikiem). //DAO to nie komponent tylko wzorzec projektowy

Jest często łączony z wzorcami projektowymi. //Z innymi wzorcami projektowymi ( czy to ma znaczenie? Jest tak samo łączony jak aplikacje bez DAO)

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. //Trzeba modyfikowac kod ale tylko w warstwie implementacji DAO

Wzorzec ten jest często stosowany w modelu MVC (Model-View-Controller) do oddzielenia dostępu do danych od logiki biznesowej i warstwy prezentacji. //Autor myli tutaj pojecie architektury wielowarstowej (Modelu JAVA 2) z wzorcem projektowym mvc. DAO czesto stosuje sie w aplikacjach desktopowych, czy udostepniajacych usługi (RMI,SOAP)

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). //Narzedzia te maja marginalne znaczenie


Dodanie DAO do swojej aplikacji implikuje pojawieniem się kolejnej warstwy interfejsu oraz zwiększeniem ilości kodu, który musi zostać wykonany do realizacji tego samego działania. //Czas wykonania kodu jest znikomy w porownaniu z czasem dostepu do bazy danych. Jezeli dodatkowo wielokrotnie laczymy sie z baza - kazde polaczenie zajmuje czas. Z DAO uzywa sie warstw posredniczacych do zapewnienia poolingu polaczen bazodanowych, ewentualnie jest to latwiej samemu zaprogramowac.

Z tego powodu w aplikacjach, dla których wydajność ma krytyczne znaczenie, rezygnuje się z niego, aby zapewnić jak najszybsze działanie. //Dla jakich aplikacji szybkosc ma znaczenie krytyczne? Aplikacje bazodanowe nie dzialaja w realtime z zalozenia. W/g mnie autor nie wie o czym pisze.

Zgadzam się z tekstem o wydajności. Poza tym nie wspomniano o języku w jakim realizuje się takie konstrukcje. Niektóre kompilatory potrafią optymalizować kod, jeśli implementuje się kod według pewnych zasad. NullPointerException (dyskusja) 15:12, 23 mar 2015 (CET)[odpowiedz]