MVC Archistruktura i ramy z przykładami

⚡ Inteligentne podsumowanie

Model-View-Controller (MVC) to wzorzec architektoniczny, który dzieli aplikację na trzy komponenty — model, widok i kontroler — izolując logikę biznesową od warstwy prezentacji, co umożliwia tworzenie łatwych w utrzymaniu i testowaniu aplikacji internetowych i desktopowych przy użyciu frameworków takich jak Spring, Django i Laravel.

  • 🧱 Trzy składniki: MVC dzieli aplikację na Model (dane), Widok (prezentacja) i Kontroler (interakcja z użytkownikiem).
  • 🗄️ Model: Przechowuje dane i logikę biznesową, reagując na żądania z Widoku i instrukcje z Kontrolera.
  • 🖼️ Widok: Prezentuje użytkownikowi dane za pomocą elementów interfejsu użytkownika, takich jak pola tekstowe, listy rozwijane, wykresy i tabele.
  • 🎮 Kontroler: Interpretuje dane wprowadzone przez użytkownika, a następnie odpowiednio aktualizuje Model i Widok.
  • ⚙️ Popularne ramy: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel i CodeIgniter implementuje wzorzec MVC.
  • ⚖️. Zalety i wady: MVC poprawia testowalność i równoległy rozwój, ale dodaje abstracwarstwy nośne i złożoność nawigacji.

MVC Archistruktura i ramy

Co to jest framework MVC?

Kontroler widoku modelu (MVC) framework to wzorzec architektoniczny, który dzieli aplikację na trzy główne komponenty logiczne: Model, Widok i Kontroler. Stąd skrót MVC. Każdy komponent architektury jest zbudowany tak, aby obsługiwać określony aspekt rozwoju aplikacji. MVC oddziela od siebie warstwę logiki biznesowej i prezentacyjną. Tradycyjnie był używany w graficznych interfejsach użytkownika (GUI) komputerów stacjonarnych. Obecnie architektura MVC w technologii internetowej stała się popularna w projektowaniu aplikacji internetowych, jak również aplikacji mobilnych.

Historia MVC

  • Architektura MVC została po raz pierwszy omówiona w 1979 roku przez Trygve Reenskauga
  • Model MVC został po raz pierwszy wprowadzony w 1987 roku w języku programowania Smalltalk.
  • MVC zostało po raz pierwszy przyjęte jako ogólna koncepcja w artykule z 1988 roku
  • W ostatnich czasach wzorzec MVC jest szeroko stosowany w nowoczesnych aplikacjach internetowych

Cechy MVC

  • Łatwe i bezproblemowe testowanie. Wysoce testowalna, rozszerzalna i podłączana platforma
  • Aby zaprojektować architekturę aplikacji internetowej przy użyciu wzorca MVC, zapewnia on pełną kontrolę nad kodem HTML i URLs
  • Wykorzystaj istniejące funkcje dostarczane przez ASP.NET, JSP, Django itp.
  • Wyraźne rozdzielenie logiki: Model, Widok, Kontroler. Rozdzielenie zadań aplikacji, tj. logiki biznesowej, logiki Ul i logiki wejściowej
  • URL Trasowanie przyjazne dla SEO URLs. Potężny URL-mapaping dla zrozumiałego i przeszukiwalnego URLs
  • Wsparcie dla rozwoju opartego na testach (TDD)

MVC Architektura

Teraz, gdy korzyści są już jasne, przedstawiamy szczegółową architekturę struktury MVC:

MVC Architektura
MVC ArchiSchemat tecture

Trzy ważne komponenty MVC to:

  • Model: Zawiera wszystkie dane i związaną z nimi logikę
  • Widok: przedstawia dane użytkownikowi lub obsługuje interakcję z użytkownikiem
  • Kontroler: interfejs pomiędzy komponentami Modelu i Widoku

Przyjrzyjmy się bliżej każdemu z tych komponentów:

Zobacz

Widok to ta część aplikacji, która reprezentuje prezentację danych.

Widoki są tworzone na podstawie danych zebranych z danych modelu. Widok żąda od modelu podania informacji, aby mógł on przedstawić użytkownikowi prezentację wyjściową.

Widok przedstawia również dane z wykresów, diagramów i tabel. Na przykład, każdy widok klienta będzie zawierał wszystkie komponenty interfejsu użytkownika, takie jak pola tekstowe, listy rozwijane itp.

kontroler

Kontroler to część aplikacji, która obsługuje interakcję użytkownika. Kontroler interpretuje dane wprowadzane przez użytkownika za pomocą myszy i klawiatury, informując model i widok o konieczności wprowadzenia odpowiednich zmian.

Kontroler wysyła polecenia do modelu, aby zaktualizować jego stan (np. zapisanie określonego dokumentu). Kontroler wysyła również polecenia do powiązanego z nim widoku, aby zmienić jego prezentację (np. przewijanie określonego dokumentu).

Model

Komponent modelu przechowuje dane i związaną z nimi logikę. Reprezentuje dane przesyłane pomiędzy komponentami kontrolera lub dowolną inną powiązaną logiką biznesową. Na przykład obiekt Controller pobierze informacje o kliencie z bazy danych. Manipuluje danymi i wysyła je z powrotem do bazy danych lub wykorzystuje je do renderowania tych samych danych.

Reaguje na żądania z widoków, a także na polecenia kontrolera dotyczące aktualizacji. Jest to również najniższy poziom wzorca, który odpowiada za przechowywanie danych.

Przykłady MVC

Zobaczmy przykład kontrolera widoku modelu z życia codziennego:

1 przykład

Przykłady MVC

  • Załóżmy, że idziesz do restauracji. Nie będziesz chodzić do kuchni i przygotowywać jedzenia, które z pewnością możesz zrobić w domu. Zamiast tego idź tam i poczekaj, aż przyjdzie kelner.
  • Teraz przychodzi do ciebie kelner i zamawiasz jedzenie. Kelner nie wie, kim jesteś i czego chcesz, po prostu spisał szczegóły zamówienia.
  • Następnie kelner idzie do kuchni. W kuchni kelner nie przygotowuje jedzenia.
  • Kucharz przygotowuje twoje jedzenie. Kelner otrzymuje twoje zamówienie wraz z numerem twojego stolika.
  • Gotuj, a następnie przygotuj dla siebie jedzenie. Używa składników do gotowania jedzenia. Załóżmy, że zamawiasz kanapkę warzywną. Następnie potrzebuje chleba, pomidorów, ziemniaków, papryki, cebuli, kawałka, sera itp., które pozyskuje z lodówki
  • Gotuj i przekazuj jedzenie kelnerowi. Teraz zadaniem kelnera jest wynoszenie jedzenia poza kuchnię.
  • Teraz kelner wie, jakie jedzenie zamówiłeś i jak jest podawane.

W tym przykładzie architektury MVC,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Zobaczmy jeszcze jeden przykład modelu MVC,

2 przykład

Przykłady MVC

Mechanizm napędowy samochodu to kolejny przykład modelu MVC.

  • Każdy samochód składa się z trzech głównych części.
  • Widok: Interfejs użytkownika: (Dźwignia zmiany biegów, panele, kierownica, hamulec itp.)
  • Kontroler-mechanizm (silnik)
  • Model - Przechowywanie (zbiornik benzyny lub oleju napędowego)

Samochód uruchamiany jest na silniku, pobiera paliwo z magazynu, ale działa wyłącznie przy użyciu wspomnianych urządzeń interfejsu użytkownika.

Popularne frameworki internetowe MVC

Oto lista niektórych popularnych frameworków MVC:

Zalety MVC: kluczowe korzyści

Oto najważniejsze korzyści wynikające ze stosowania architektury MVC:

  • Łatwa konserwacja kodu, który można łatwo rozszerzać i rozwijać
  • Komponent modelu MVC można testować niezależnie od użytkownika
  • Łatwiejsza obsługa nowych typów klientów
  • Rozwój różnych komponentów może odbywać się równolegle.
  • Pomaga uniknąć złożoności poprzez podzielenie aplikacji na trzy jednostki. Model, widok i kontroler
  • Używa tylko wzorca Front Controller, który przetwarza żądania aplikacji internetowych za pośrednictwem jednego kontrolera.
  • Oferuje najlepsze wsparcie dla rozwój oparty na testach
  • Działa dobrze w przypadku aplikacji internetowych obsługiwanych przez duże zespoły projektantów i programistów stron internetowych.
  • Zapewnia czyste rozdzielenie obszarów odpowiedzialności (SoC).
  • Przyjazny dla optymalizacji pod kątem wyszukiwarek (SEO).
  • Wszystkie klasy i obiekty są od siebie niezależne, dzięki czemu można je testować osobno.
  • Wzorzec projektowy MVC umożliwia logiczną grupęping powiązanych ze sobą działań na kontrolerze.

Wady korzystania z MVC

  • Trudny do odczytania, zmiany, przetestowania jednostkowego i ponownego wykorzystania tego modelu
  • Nawigacja w ramach struktury może być czasami skomplikowana, ponieważ wprowadza nowe warstwy abstracwymaga od użytkowników dostosowania się do kryteriów dekompozycji MVC.
  • Brak formalnego wsparcia w zakresie walidacji
  • Zwiększona złożoność i nieefektywność danych
  • Trudność korzystania z MVC z nowoczesnym interfejsem użytkownika
  • Aby programować równolegle, potrzeba wielu programistów.
  • Wymagana jest znajomość wielu technologii.
  • Utrzymanie wielu kodów w kontrolerze

3 poziomy Architechnologia vs. MVC Architektura

Parametr 3-Tier Architektura MVC Architektura
Komunikacja Ten typ wzorca architektury nigdy nie komunikuje się bezpośrednio z warstwą danych. Wszystkie warstwy komunikują się bezpośrednio, wykorzystując topologię trójkąta.
Stosowanie Trójwarstwowy: szeroko stosowany w aplikacjach internetowych, gdzie klient, warstwy danych i oprogramowanie pośredniczące działają na fizycznie oddzielnych platformach. Zwykle używany w aplikacjach działających na pojedynczej graficznej stacji roboczej.

FAQ

MVC to wzorzec architektoniczny, a nie prosty wzorzec projektowy. Organizuje całą aplikację w warstwach modelu, widoku i kontrolera, oddzielając dane, prezentację i logikę interakcji z użytkownikiem.

MVC używa kontrolera do obsługi danych wejściowych i aktualizacji modelu i widoku, podczas gdy MVVM używa modelu widoku z powiązaniem danych. MVVM redukuje szablonowość i jest powszechnie stosowany w nowoczesnych frameworkach interfejsów użytkownika.

Użyj MVC podczas tworzenia aplikacji wymagających wyraźnego oddzielenia danych, interfejsu użytkownika i logiki, zwłaszcza aplikacji internetowych obsługiwanych przez większe zespoły. Poprawia to testowalność, równoległość programowania i routing przyjazny dla SEO.

Funkcje AI są zazwyczaj dodawane w warstwie modelu lub usługi aplikacji MVC. Kontroler przekazuje dane wejściowe użytkownika do modeli AI, a widok wyświetla użytkownikom prognozy, rekomendacje lub wygenerowaną treść.

Tak. Asystenci kodowania AI mogą tworzyć szkielety komponentów MVC, generować kontrolery, modele i widoki oraz sugerować routing. Deweloperzy nadal sprawdzają dane wyjściowe, aby zapewnić poprawność logiki biznesowej i bezpieczeństwo.

Podsumuj ten post następująco: