Strona internetowa to więcej niż wygląda na zewnątrz. W rzeczywistości wzór strukturalny strony internetowej różni się tak bardzo, jak sama strona internetowa. Witryna to złożona sieć wielu komponentów, które współdziałają ze sobą w celu uruchomienia aplikacji. Weźmy na przykład Facebooka, który jest jedną z najbardziej złożonych witryn, z których korzystamy prawie codziennie. Przejdź do strony głównej, a zobaczysz, że witryna obsługuje jednocześnie prawie tuzin żądań danych, wypełniając stronę wieloma komponentami. Łatwo można sobie wyobrazić, że logika interakcji między komponentami w celu uruchomienia programu takiego jak Facebook może być bardzo różna od innych stron internetowych. Podstawową funkcjonalność każdej strony internetowej określa łatwość, z jaką interfejs wchodzi w interakcję z odpowiednim modelem w celu uzyskania danych, których poszukuje widz. MVC i MVVM to dwa popularne wzorce projektowe w świecie tworzenia oprogramowania.
MVC, skrót od Model-View-Controller, to model projektowania aplikacji powszechnie stosowany do opracowywania nowoczesnych interfejsów użytkownika. Wzorzec MVC jest sercem nowoczesnego programowania obiektowego, ponieważ wyłonił się ze społeczności projektantów obiektowych. Pierwotnie nazywał się Thing-Model-View-Editor w 1979 roku, ale później został uproszczony i przemianowany na Model-View-Controller. Jest głównie używany do projektowania i tworzenia aplikacji mobilnych i internetowych. Dzieli interfejs użytkownika aplikacji na trzy odrębne części: model, widok i kontroler.
Model: Model reprezentuje zestaw klas opisujących dane, które planujesz wykorzystać w aplikacji. Opisuje wspólny format danych, ale może także zawierać reguły biznesowe, konwersje, logikę sprawdzania poprawności i różne inne funkcje.
Widok: Widok reprezentuje dane do wyświetlenia z modelu. Określa sposób wyświetlania interfejsu użytkownika aplikacji. Model może mieć wiele widoków w zależności od aplikacji. Model widoku, pod względem projektowym, zasadniczo przedstawia komponenty interfejsu użytkownika, takie jak HTML, jQuery i tak dalej.
Kontroler: Kontroler jest centralnym elementem aplikacji MVC, która obsługuje komunikację od użytkownika w formie zdarzeń, ogólnego przepływu aplikacji i logiki specyficznej dla aplikacji. Zdarzenia są następnie konwertowane na zgłoszenia serwisowe i przekazywane do modelu lub widoku. Jest to jedyny element, za pośrednictwem którego użytkownik wchodzi w interakcje z systemem.
Model-View-ViewModel, lub MVVM, to popularny wzorzec architektury oprogramowania powszechnie stosowany do tworzenia aplikacji internetowych wielokrotnego użytku i łatwych do testowania. MVVM opiera się na wzorcu MVC, ale ulepsza model MVC, wprowadzając nową klasę o nazwie ViewModel, która zarządza danymi specyficznymi dla widoku. Podstawowym celem modelu MVVM jest prawdziwa separacja między modelem a komponentami widoku. Główne komponenty modelu to: Model, Widok i ViewModel.
Model: Zasada pozostaje taka sama jak w modelu MVC. Model reprezentuje logikę biznesową i dane oraz określa sposób manipulowania danymi.
Widok: Model widoku reprezentuje dane, które mają zostać wyświetlone, ale nie wykonuje żadnych operacji na danych. Widok jest taki sam jak w MVC, z tym że powiązania danych muszą być ustawione dla widoku, co odbywa się poprzez dodanie ViewModel do widoku.
ViewModel: Jest to najważniejszy element modelu, ponieważ został zaprojektowany do korzystania z funkcji wiązania danych, co w rzeczywistości pomaga oddzielić widok od modelu, a jednocześnie działa jako kontroler w celu ułatwienia komunikacji między komponentami Widok i Model.
- Model-View-Controller (MVC) to model projektowania aplikacji powszechnie stosowany do opracowywania nowoczesnych interfejsów użytkownika. Dzieli interfejs użytkownika aplikacji na trzy odrębne części: model, widok i kontroler. Z drugiej strony Model-View-ViewModel (MVVM) to nowoczesny wariant modelu MVC powszechnie stosowanego do tworzenia aplikacji internetowych wielokrotnego użytku i łatwych do testowania. Głównymi komponentami modelu MVVM są Model, Widok i ViewModel.
- Kluczową cechą odróżniającą MVVM od innych wzorców projektowych oprogramowania jest powiązanie danych, które jest po prostu mechanizmem łączącym interfejs użytkownika z logiką biznesową. Jest to kluczowa technologia, która łączy widoki z ich modelami ViewModels, co zapewnia, że modele i właściwości są zsynchronizowane z widokiem w modelu ViewModel. Eliminuje to potrzebę wystawiania całego modelu na widok.
- Kluczowa różnica między tymi dwoma wzorami architektonicznymi polega na tym, że w MVC kontroler jest odpowiedzialny za zarządzanie komunikacją między modelem a widokiem za pomocą zdarzeń, podczas gdy struktura wykonuje wszystkie ciężkie podnoszenie w MVVM za pomocą funkcji zwanej wiązaniem danych. ViewModel w MVVM pomaga oddzielić widok od modelu, a jednocześnie działa jako kontroler, ułatwiając komunikację między widokiem a komponentami modelu.
Chociaż zarówno MVC, jak i MVVM są pochodnymi modelu MVC, MVVM jest nowoczesnym wariantem modelu MVC, który wprowadza nową klasę o nazwie ViewModel, która zarządza danymi specyficznymi dla widoku. Podstawowym celem modelu MVVM jest prawdziwa separacja między modelem a komponentami widoku. W MVC kontroler odpowiada za zarządzanie komunikacją między modelem a widokiem. Jednak w MVVM ViewModel pomaga oddzielić widok od modelu, a także działa jako kontroler, ułatwiając komunikację między komponentami.