Samouczek dotyczący frameworka MVC dla początkujących: Co to jest, Architecture i przykład
Co to jest framework MVC?
Kurs 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 ostatnim czasie 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ę zarówno nad kodem HTML, jak i adresami URL
- 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
- Routing adresów URL dla adresów URL przyjaznych SEO. Potężne mapowanie adresów URL dla zrozumiałych i możliwych do przeszukiwania adresów URL
- Wsparcie dla rozwoju opartego na testach (TDD)
MVC Architektura
Oto szczegółowa architektura struktury MVC:
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ę szczegółowo temu komponentowi:
Zobacz
Widok to ta część aplikacji, która reprezentuje prezentację danych.
Widoki tworzone są na podstawie danych zebranych z danych modelu. Widok żąda od modelu podania informacji, aby przedstawić użytkownikowi prezentację wyników.
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 ta część aplikacji, która obsługuje interakcję z użytkownikiem. Kontroler interpretuje dane wejściowe użytkownika za pomocą myszy i klawiatury, informując model i widok o konieczności zmiany.
Kontroler wysyła polecenia do modelu w celu aktualizacji jego stanu (np. zapisanie określonego dokumentu). Kontroler wysyła również polecenia do powiązanego z nim widoku, aby zmienić prezentację widoku (na przykład przewinięcie 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.
Odpowiada na żądanie z widoków, a także reaguje na instrukcje kontrolera, aby się zaktualizować. Jest to jednocześnie najniższy poziom wzorca odpowiedzialny za utrzymanie danych.
Przykłady MVC
Zobaczmy przykład kontrolera widoku modelu z życia codziennego:
1 przykład
- 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
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:
- Ruby on Rails
- Django
- CakePHP
- Yii
- WiśniowyPy
- Sprężyna MVC
- Katalizator
- Rails
- ZendFramework
- CodeIgniter
- laravel
- Paliwo PHP
- Symphony
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 oddzielenie problemów (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 logiczne grupowanie powiązanych 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 abstrakcji, które wymagają 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. |
Podsumowanie
- MVC to wzorzec architektoniczny, który dzieli aplikację na 1) Model, 2) Widok i 3) Kontroler
- 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
- Architektura MVC została po raz pierwszy omówiona w 1979 roku przez Trygve Reenskauga
- Architektura MVC w Java to wysoce testowalna, rozszerzalna i podłączalna platforma
- Niektóre popularne frameworki MVC to Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP itp.