4. Wniosek
Przypomnijmy sobie, co chcieliśmy osiągnąć. Chcieliśmy zbudować aplikację internetową MVC o następującej trójwarstwowej strukturze:
![]() |
- model został zrealizowany. Został on wykorzystany w identyczny sposób przez wszystkie trzy proponowane rozwiązania
- ponieważ niezależność warstw została skrupulatnie zachowana, warstwa [web] mogła zostać zaimplementowana na trzy różne sposoby bez ingerencji w model. Pracowaliśmy wyłącznie w warstwie [web].
- Rozwiązania są do siebie zbliżone. Podczas gdy w pierwszym rozwiązaniu mieliśmy pojedynczy serwlet z jedną metodą na każdą akcję do przetworzenia, w pozostałych dwóch rozwiązaniach również mamy pojedynczy serwlet, ale pozbawiony metod przetwarzania akcji – przetwarzanie to jest teraz realizowane przez oddzielne klasy. Rola tych klas była identyczna jak rola metod w pierwszym rozwiązaniu.
- Wykorzystanie [Spring] w tej aplikacji pozostawia nam swobodę wyboru klas implementujących interfejsy Java warstw [domain] i [dao]. Klasy te można by zmienić w jednej warstwie bez żadnego wpływu na pozostałe warstwy. Wystarczyłoby jedynie zmienić plik konfiguracyjny Springa. W ten sposób warstwa [dao], obsługiwana tutaj przez narzędzie [sqlMap], mogłaby być obsługiwana przez narzędzie [Hibernate]. Miałoby to wpływ na warstwę [dao], ale w żaden sposób nie wpłynęłoby na warstwy [web] i [domain].
