Przejdź do treści głównej
INF.04Aplikacje Webowe (Frontend & Backend)

Wzorzec MVC (Model-View-Controller)

Wzorzec architektoniczny dzielący aplikację na trzy niezależne warstwy: Model (dane i logika biznesowa), Widok (interfejs użytkownika) oraz Kontroler (obsługa żądań i sterowanie).

Warstwy wzorca MVC

MVC (Model-View-Controller) to fundamentalny wzorzec architektoniczny stosowany w aplikacjach webowych (ASP.NET Core MVC, Symfony, Laravel, Django, Spring Boot) oraz desktopowych.

KOD
       Żądanie HTTP
Użytkownik -----------> [ KONTROLER (Controller) ]
                             |               ^
                     Modyfikuje /        Pobiera
                     Pobiera dane          dane
                             v               |
                      [ MODEL (Model) ] -----+
                             |
                     Przekazuje dane
                             v
                      [ WIDOK (View) ]
                             |
                       Odpowiedź HTML
                             v
                        Użytkownik

Odpowiedzialności poszczególnych modułów:

  1. Model:
    • Przechowuje stan aplikacji, reguły walidacji oraz logikę biznesową.
    • Odpowiada za pobieranie i zapisywanie danych w bazie danych (np. za pomocą ORM / Entity Framework / Doctrine).
    • Nie wie nic o widoku ani o protokole HTTP.
  2. Widok (View):
    • Odpowiada wyłącznie za prezentację danych użytkownikowi (generowanie HTML, JSON, XML lub interfejsu graficznego).
    • Wykorzystuje silniki szablonów (np. Razor w ASP.NET, Twig w Symfony, Blade w Laravelu).
  3. Kontroler (Controller):
    • Odbiera żądania użytkownika (np. żądania HTTP GET/POST).
    • Wywołuje odpowiednie metody w Modelu, a następnie wybiera i zasila Widok danymi wynikowymi.

Pułapki na egzaminie INF.04:

  • Separation of Concerns: Widok nie powinien bezpośrednio łączyć się z bazą danych ani przetwarzać logiki biznesowej; cała komunikacja przechodzi przez Kontroler i Model.

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Wzorzec MVC (Model-View-Controller) lub rozpocznij trening.