Wzorzec projektowy MVC (Model-View-Controller) cz.1

By admin, 28-02-2010 12:09

Jak zapowiedziałem, będę powoli umieszczał materiały z moich wykładów. Na pierwszy ogień pójdzie wzorzec projektowy MVC. W pierwszej części przedstawię jego teoretyczną budowę. Praktyczne wykorzystanie w Spring MVC ukaże się już wkrótce (przynajmniej mam taką nadzieje). Jeśli ktoś ma ochotę może również obejrzeć prezentacje, którą udostępniam tutaj.

Jest to jeden z najbardziej popularnych wzorców wykorzystywanych przy projektowaniu zarówno aplikacji desktopowych jak i webowych. Historia jego powstania sięga lat 70. XX wieku. Opracowany w laboratoriach firmy Xerox zyskał na popularności wraz z szybkim rozwojem inżynierii oprogramowania.

W jego skład wchodzą 3 komponenty: Model, Widok, Kontroler, które zaprezentuje na podstawie Spring MVC Framework w części 2. Obecnie wystarczy nam ogólna znajomość poszczególnych elementów.

  • Model –  element odpowiedzialny za logikę biznesową, czyli w najprostszym przypadku określa sposób przechowywania i dostępu do danych
  • Widok – na podstawie modelu tworzy jego graficzną reprezentacje, która zostaje przedstawiona użytkownikowi. Istnieje możliwość by wiele widoków dotyczyło tego samego modelu.
  • Kontroler – odbiera żądania, przetwarza je wykonując odpowiednie operacje tworząc lub uaktualniając model

Oczywiście musimy zdawać sobie sprawę, że klasyczna interpretacja tego wzorca jest nieco inna niż jego odpowiednik sieciowy.


MVC

Tradycyjna implementacja wzorca MVC:

  • Kontroler  wykonuje żądania i aktualizuje model
  • Zmiany zostają przekazane do widoku, który samoczynnie się uaktualni (np. korzystając z wzorca obserwator)

Ze względu na ograniczenia HTTP stworzenie takiej idealnej implementacji w aplikacjach sieciowych jest trudne. Musimy zatem stworzyć rozwiązanie, w którym to nie model przesyła dane do widoku ale widok pobiera dane z modelu i wyświetla je w odpowiedni sposób po stronie użytkownika.

Zastanówmy się jak przebiega proces wyświetlenia strony www w przeglądarce internetowej. Przeglądarka generuje żądanie, aby przekazać na serwer informacje o czynności wykonanej przez użytkownika. Serwer reaguje wykonując pewne informacje, po czym generuje widok który wysyłany jest jako odpowiedź do klienta.


MVC

Wzorzec MVC rozpoczyna działanie w chwili, gdy serwer odbiera żądanie HTTP. Na podstawie informacji w nim przekazanych (URL, parametry), aplikacja powinna wykonać odpowiednie działania (kontroler). Po zakończeniu przetwarzania żądania użytkownika, co zazwyczaj będzie wiązało się z aktualizacją bądź utworzeniem modelu, sterowanie zostaje przekazane do widoku. Z kolei widok przesyła dane do klienta w formie strony HTML bądź innym ustalonym.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4,00 out of 5)
Loading ... Loading ...

Leave a Reply

Panorama Theme by Themocracy Modified by Symolon