Skocz do zawartości

Rekomendowane odpowiedzi

 

084a8e20599e1d74c9cf67411d1155d9_logo_dark.png

 

 

Witajcie, dzisiaj opowiem Wam co nieco na temat architektury MVC, co to jest to MVC? Jest to architektura Model-View-Controller tzw. wzorzec projektowy, stosowany przy tworzeniu nowoczesnych aplikacji webowych. 

 

Główną koncepcją MVC jest wymuszenie podziału aplikacji na 3 niezależne warstwy reprezentujące kolejno:

             1. (Model) Model danych - logika aplikacji, czyli to czego nie widzi uzytkownik,

             2. (View) Interfejs - widok, czyli to co przekazywane jest do użytkownika po przetworzeniu przez kontroler/model,

             3. (Controller) Logika działania - przyjmuje i obsługuje dane od użytkownika, przekazuje je do modelu lub wyświetla widok.

 

Podział architektury systemu na warstwy jest potrzebny, aby utrzymać porządek. Dzięki temu, że każda logiczna część jest od siebie oddzielona, zmiana w jednym miejscu, nie powoduje konieczności wykonywania lawinowej ilości zmian w innych miejscach systemu.

 

Co to jest Model?

  • Otóż nic innego jak jednostka (plik) odpowiedzialna za dane. Jest jedynie odpowiedzialna za ich przetwarzanie i dostarczanie. Zazwyczaj model jak już wspomniałem jest odpowiedzialny za komunikację z bazą danych.

 

Co to jest View?

  • Po prostu szablon, plik który ma za zadanie odpowiednio przedstawić dane dostarczone z modelu, jednakże nie zawsze widok opiera się na danych z modelu, gdyż taką logikę może wykonać również kontroler. Reprezentacja tego co widzi użytkownik.

 

Co to jest Controller?

  • Jest to jednostka odpowiedzialna za komunikację z modelem (danymi) i widokami (prezentacja/szablony). Ale pamiętaj - nic innego jak osobny, wyspecjalizowany do tego plik w którym dzieje się cała ta logika.

 

 

Jakie są wady i zalety korzystania z architektury MVC?

 

Zalety:

  • Niezależność modelu - model nie jest zależny od widoku i aplikacja może posiadać wiele niezależnych widoków dla tego samego modelu,
  • Duża elastyczność widoków - ze względu na na oddzielenie widoku od modelu, widoki mogą być modyfikowane częściej i niższym kosztem. Jest to szczególnie istotne, ponieważ w życiu systemu interfejs i warstwa prezentacji zmieniają się częściej niż logika biznesowa aplikacji.
  • Brak chaotycznego kodu - cały kod mamy pogrupowany na 3 warstwy, dzięki czemu panuje porządek, a także umożliwia to łatwy rozwój aplikacji.

 

Wady:

  • Złożoność - architektura MVC nanosi dodatkową warstwę abstrakcji i nowe sposoby interakcji, co prowadzi do wzrostu jej złożoności. Zależność widoków od modeli i dodatkowa logika widoków czyni je szczególnie skomplikowane w testowaniu,
  • Mała elastyczność modelu - modyfikacja modelu może w konsekwencji wymagać modyfikacji wielu widoków operujących na tym modelu (ponieważ model jest niezależny od widoku, ale widok zawsze opiera się na modelu)

 

 

Oryginalny wzorzec MVC

*Zobrazowanie architektury MVC*

 

 

 

Artykuł został stworzony na potrzeby forum GO-CODE.pl

Zakaz kopiowania na inne fora.

via vavatech.pl & devloger.pl

Sygnatura użytkownika

unknown.png

  • Lubię to!
  • Kocham to
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio przeglądający ten temat (5 użytkowników)

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...