Andrzej Stasiak Software Engineer
Temat: Architektura aplikacji w Spring MVC
Witam,zakładam nowy temat, żeby jego nazwa dotyczyła zawartości (poprzedni był tu: http://www.goldenline.pl/forum/2703360/dostep-do-sesji.... Dzięki za wszystkie poprzednie rady, bardzo mi pomogły :-) Mam jednak kolejne pytanie:
Tworzę małą aplikację używając Spring MVC i Hibernate i mam wątpliwości odnośnie układu komponentów w niej. Pytanie dotyczy więc dobrych praktyk programistycznych raczej niż konkretnych problemów technicznych.
Stosuję pewien schemat, który przejąłem z tutoriala na którego bazie zacząłem się uczyć: Mam pewne klasy zawierające encje, które zapisuję w bazie danych. Do większości z nich przyporządkowane są odpowiednie klasy DAO (np. User ma swoje UserDAO itp.), jako @Repository, ponadto mam DataService (@Service), który na dobrą sprawę tylko deleguje żądania metod do konkretnych DAO (np. listUser() wywołuje tylko UserDAO.listUser()).
No i właśnie, nie rozumiem tego podziału na dwie warstwy (Service i DAO), skoro service tylko przekazuje wywołania dalej. Najchętniej wywaliłbym wszystkie DAO i bezpośrednio z DataService robił za pomocą Hibernate'a co chcę. Ale we wszystkich przykładach taki podział się pojawia, więc może jest w tym jakiś sens? Jeszcze jedna rzecz, która mnie niepokoi, że mam jedno DataService, które ma bardzo dużo metod, z drugiej strony, gdybym podzielił to na kilka mniejszych klas, to musiałbym w kontrolerach dbać o to, żeby do dobrego serwisu się odwoływać. Czy ktoś chciałby wyjaśnić mi pokrótce jak to się ładnie robi i czemu tak?
Dzięki, że chciało Ci się to wszystko przeczytać, i z góry dzięki, jeśli będzie Ci się chciało coś odpisać. ;-)