Jestem nieco zdezorientowany na przykład znaleziony w Internecie - spring & hibernate (punkt 4. Model & BO & DAO
). Istnieją klasy Model, DAO i BO (+ interfejsy DAO i BO). To, czego nie rozumiem, to dlaczego DAO i BO są podzielone na różne klasy, jeśli mają dokładnie te same funkcje (tylko różnica polega na tym, że BO ma ustawnik DAO).DAO & BO (warstwa dostępu do danych) - architektura
Autor wyjaśnia jedynie, że wzór:
jest przydatna do identyfikacji warstwy wyraźnie uniknąć bałagan strukturę projektu
ale wydaje ponad zaprojektowane do mnie (co najmniej w tym przypadku). Wiem, że ten przykład jest bardzo prosty, ale do czego mogłaby się przydać ta separacja klas? Czy ktoś może podać przykład?
I imange czyjeś BOS będzie _wstrzymany_ dane natomiast czyjeś DAOs byłoby _retrieve_ danych. –
Jeśli DAO nie byłyby rozdzielone, byłoby bardzo trudno dla BO (usług) ponownie użyć DAO. Są też inne zalety, np. Jeśli zmienisz bazową architekturę DB lub ORM, repozytorium BO pozostanie nienaruszone, ponieważ zmieni się tylko część implementacyjna potrzeb DAO. – techuser