W ciągu ostatnich kilku lat strony internetowe przestały być prostymi stronami HTML z odrobiną CSS i stały się niezwykle złożonymi aplikacjami, nad którymi jednocześnie pracowały tysiące programistów. Aby pracować z tak złożonymi aplikacjami internetowymi, programiści używają różnych wzorców projektowych do układania swoich projektów, aby kod był mniej złożony i łatwiejszy w obsłudze. Najpopularniejszym z tych wzorców jest MVC znany również jako Kontroler widoku modelu.
Co to jest MVC?
The Kontroler widoku modelu (MVC) Framework to wzorzec architektoniczny/projektowy, który dzieli aplikację na trzy główne logiczne komponenty Model , Pogląd , I Kontroler . Każdy komponent architektoniczny jest zbudowany tak, aby obsługiwał określone aspekty rozwoju aplikacji. Izoluje od siebie warstwę logiki biznesowej i prezentacji. Tradycyjnie był używany na komputerze stacjonarnym graficzne interfejsy użytkownika (GUI) . Obecnie MVC jest jednym z najczęściej używanych, standardowych frameworków do tworzenia stron internetowych, umożliwiającym tworzenie skalowalnych i rozszerzalnych projektów. Służy również do projektowania aplikacji mobilnych.
MVC został stworzony przez Trygve Reenskaug . Głównym celem tego wzorca projektowego było rozwiązanie problemu użytkowników kontrolujących duży i złożony zbiór danych poprzez podzielenie dużej aplikacji na określone sekcje, z których każda ma swój własny cel.
Cechy MVC:
- Zapewnia wyraźne oddzielenie logika biznesowa, logika interfejsu użytkownika i logika danych wejściowych.
- Oferuje pełną kontrolę nad kodem HTML i adresami URL, co ułatwia projektowanie architektury aplikacji internetowych.
- Jest to potężny komponent do mapowania adresów URL, za pomocą którego możemy tworzyć aplikacje posiadające zrozumiałe i możliwe do przeszukiwania adresy URL.
- To wspiera Rozwój oparty na testach (TDD).
Aby dowiedzieć się więcej na temat korzyści płynących ze stosowania Frameworku MVC zapoznaj się z artykułem – Korzyści ze stosowania frameworka MVC
Komponenty MVC:
Framework MVC obejmuje następujące 3 komponenty:
- Kontroler
- Model
- Pogląd

Projekt architektury MVC
Kontroler:
Kontroler jest komponentem umożliwiającym połączenie widoków z modelem, pełni więc rolę pośrednika. Kontroler nie musi się martwić obsługą logiki danych, po prostu mówi modelowi, co ma robić. Przetwarza całą logikę biznesową i przychodzące żądania, manipuluje danymi za pomocą Model komponentu i wchodzić z nim w interakcję Pogląd aby wyrenderować końcowy wynik.
równość obiektów w Javie
Pogląd:
The Pogląd Komponent jest używany dla całej logiki interfejsu użytkownika aplikacji. Generuje interfejs użytkownika dla użytkownika. Widoki są tworzone na podstawie danych zbieranych przez komponent modelu, ale dane te nie są pobierane bezpośrednio, ale za pośrednictwem kontrolera. Współpracuje tylko ze sterownikiem.
Model:
The Model komponent odpowiada całej logice związanej z danymi, z którą pracuje użytkownik. Może to reprezentować dane przesyłane pomiędzy komponentami View i Controller lub dowolne inne dane związane z logiką biznesową. Może dodawać lub pobierać dane z bazy danych. Odpowiada na żądanie kontrolera, ponieważ kontroler nie może samodzielnie współdziałać z bazą danych. Model współdziała z bazą danych i przekazuje wymagane dane z powrotem do kontrolera.
Działanie frameworku MVC na przykładzie:
Wyobraźmy sobie, że użytkownik końcowy wysyła żądanie do serwera w celu uzyskania listy uczniów uczących się w klasie. Serwer wysłałby następnie to żądanie do konkretnego kontrolera obsługującego uczniów. Kontroler ten zażądałby następnie od modelu obsługującego uczniów zwrócenia listy wszystkich uczniów uczących się w danej klasie.

Przepływ danych w komponentach MVC
Model wysyłał zapytanie do bazy danych o listę wszystkich uczniów, a następnie zwracał tę listę z powrotem do kontrolera. Jeżeli odpowiedź z modelu przebiegła pomyślnie, kontroler poprosi widok powiązany ze studentami o zwrócenie prezentacji listy studentów. Ten widok pobierze listę uczniów z kontrolera i wyrenderuje ją do formatu HTML, który może być używany przez przeglądarkę.
Kontroler następnie pobierze tę prezentację i zwróci ją użytkownikowi. W ten sposób kończę prośbę. Jeśli wcześniej model zwróciłby błąd, kontroler obsłużyłby ten błąd, prosząc widok obsługujący błędy o wyrenderowanie prezentacji dla tego konkretnego błędu. Prezentacja błędu zostanie następnie zwrócona użytkownikowi zamiast prezentacji listy uczniów.
Jak widać z powyższego przykładu, model obsługuje wszystkie dane. Widok obsługuje wszystkie prezentacje, a kontroler po prostu informuje model i widok, co ma robić. To jest podstawowa architektura i działanie frameworku MVC.
Wzorzec architektoniczny MVC pozwala nam przestrzegać następujących zasad projektowych:
1. Dziel i rządź. Te trzy komponenty można zaprojektować w pewnym stopniu niezależnie.
2. Zwiększ spójność. Komponenty mają silniejszą spójność warstw, niż gdyby widok i kontroler znajdowały się razem w jednej warstwie interfejsu użytkownika.
3. Zmniejsz sprzęgło. Kanały komunikacji pomiędzy trzema komponentami są minimalne i łatwe do znalezienia.
4. Zwiększ ponowne wykorzystanie. Widok i kontroler zwykle szeroko wykorzystują komponenty wielokrotnego użytku do różnego rodzaju elementów sterujących interfejsu użytkownika. Interfejs użytkownika będzie jednak dostosowany do aplikacji, dlatego nie będzie można go łatwo ponownie wykorzystać.
5. Projekt zapewniający elastyczność. Zwykle dość łatwo jest zmienić interfejs użytkownika, zmieniając widok, kontroler lub jedno i drugie.
Zalety MVC:
- Kody są łatwe w utrzymaniu i można je łatwo rozszerzać.
- MVC Model komponent można przetestować osobno.
- Komponenty MVC można rozwijać jednocześnie.
- Zmniejsza złożoność, dzieląc aplikację na trzy jednostki. Model, widok i kontroler.
- To wspiera Rozwój oparty na testach (TDD).
- Działa dobrze w przypadku aplikacji internetowych obsługiwanych przez duże zespoły projektantów i programistów stron internetowych.
- Architektura ta pomaga w niezależnym testowaniu komponentów, ponieważ wszystkie klasy i obiekty są od siebie niezależne
- Optymalizacja wyszukiwarek (SEO) Przyjazny.
Wady MVC:
- Trudno jest odczytać, zmienić, przetestować i ponownie wykorzystać ten model
- Nie nadaje się do tworzenia małych aplikacji.
- W świetle nieefektywności dostępu do danych.
- Nawigacja po frameworku może być złożona, ponieważ wprowadza nowe warstwy abstrakcji, co wymaga od użytkowników dostosowania się do kryteriów dekompozycji MVC.
- Zwiększona złożoność i nieefektywność danych
Popularne frameworki MVC:
Poniżej wymieniono niektóre z najpopularniejszych i najczęściej używanych frameworków MVC.
ciąg znaków połączony z Java
- Rubin na szynach
- Django
- WiśniowyPy
- Wiosenny MVC
- Katalizator
- Szyny
- Framework Zend
- Paliwo PHP
- Laravel
- Symfonia
MVC jest zwykle używany w aplikacjach działających na pojedynczej graficznej stacji roboczej. Podział komponentów logicznych zapewnia czytelność i modułowość oraz zwiększa komfort części testowej.