Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Model View Controller

Wzajemne relacje pomiędzy komponentami

Widok Kontroler - wzajemne relacje

W tradycyjnym smalltalk'owskim MVC, widok i kontroler są ze sobą silnie powiązane. Każda instancja widoku jest połączona z pojedyncza instancja kontrolera i vice versa. Kontroler jest zaprojektowany tak, aby widok używał go jako wejścia. Widok także jest odpowiedzialny za tworzenie nowych widoków i kontrolerów.

Logiczne jest to ze pomiędzy widokiem, a kontrolerem są silne powiązania, ponieważ zajmują się wejściem i wyjściem, a w aplikacji są one silnie powiązane. W większości Framework'ów GUI (graficzny interfejs użytkownika) MVC widok i kontroler są prosto powiązane w jeden obiekt. Nazywany jest on wtedy Document View. Gdy kontroler i widok są złączone razem w jeden widok. Model zostaje nazwany wtedy dokumentem.

Bierny model przerzuca więcej odpowiedzialności na kontroler, ponieważ to on musi powiadomić widok o tym że powinien zostać uaktualniony.

Współczesna sieć wprowadza więcej zmian we wzorcu MVC. Mianowicie przerzuca ona część obowiązków widoku na kontroler. Kontroler staje się odpowiedzialny za stworzenie i wybranie widoku, widok traci ten obowiązek na rzecz kontrolera.

Czasami obowiązek wybrania i stworzenia instancji odpowiedniego widoku, jest zlecany specjalnemu obiektowi. Znany jest on jako wzorzec Application Controller dla sieciowego MVC i View Handler dla GUI MVC.

Sztywności prośby/odpowiedzi cyklu HTTP czyni bardziej popularnym wariant z wykorzystaniem Document View, w WEB MVC, chociaż w aplikacjach typu GUI kontroler jest nadal mocno powiązany z widokiem. ?ądanie HTTP jest analizowane przez kontroler, przetwarzane przez model, a odpowiedzialnym za prezentacje odpowiedz jest widok.

Model widok - relacje

Widok zależy od modelu. Zmiana modelu wymaga jednoczesnej zmiany widoku.

Bardzo trudno jest osiągnąć klarowne oddzielenie modelu od widoku. Za przykład posłuży mamy warunek:

"przecenie koloruj na czerwono"

Na pierwszy rzut oka wydaje się, że jest to narzucony wymóg wyjścia i sprawdzanie wartości może się odbywać w widoku poprzez:

"jeśli wartość < 0 wtedy czerwone"

Lecz to zepsuło by założenia MVC. Po dalszej analizie okazuje się że prawdziwym warunkiem jest:

"przedstaw przekroczony stan bilansu na czerwono"

i definicja przekroczonego stanu =bilans <0 = powinien być przedstawiony w modelu zgodnie z specyfika wzorca. Bardzo prosto jest emigrować "logicznej dziedzinie" z modelu do widoku. W Template View znajduje się dalsza część dyskusji na ten temat.

Model kontroler - relacje

Kontroler polega na modelu. Zmiana w modelu może wymagać równocześnie zmiany w kontrolerze.

« Kontroler
Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (4)
Nuda
Czwartek 20 Sierpień 2009 7:22:31 pm - mistrzhtml

Rzeczywiście wyjątkowo nudny artykuł. Przecież model MVC to dobry materiał na ciekawą treść, jakiś antytalent to pisał. To jak z nauczycielami - w Polsce wystarczy mieć wiedzę z danej dziedziny i można już pracować w szkole. A ponad połowa nauczycieli się do tego nie nadaje.

Też tak potrafię :)
Niedziela 06 Kwiecień 2008 10:27:55 pm - yaotzin <yaotzin1_at_o2.pl>

Model-Widok-Kontroler jest frameworkiem określa pewien sposób pisania aplikacji[39] polegający na podziale aplikacji na trzy warstwy:
1. Model &#8211; odpowiada za sposób przechowywania danych, w niektórych publikacjach można się spotkać ze stwierdzeniem, że model to źródło danych. Modelem może być baza danych, pliki tekstowe lub pliki XML, a nawet zasoby położone na innym serwerze. Najistotniejsze jest, to aby model w MVC ukrywał przed aplikacją na czym pracuje udostępniając jej jedynie interfejs do zarządzania danymi.
2. Widok &#8211; odpowiada za to co widzi użytkownik, inaczej mówiąc zajmuje się prezentacją danych na ekranie w formie zrozumiałej dla użytkownika. W aplikacjach webowych jest to najczęściej dynamicznie generowany (X)HTML.
3. Kontroler &#8211; odpowiada za schemat wymiany danych pomiędzy Widokiem a modelem. Można by rzec, że kontroler w MVC odpowiada za interakcję użytkownika z modelem danych. W rzeczywistości kontroler przyjmuje dane żądania, pobiera dane od modelu i przekazuje je widokowi. Może również pobrać dane z widoku i przekazać je do modelu. Kontroler jest jedynym miejscem w którym powinien nastąpić kontakt widoku z modelem.
Sam Framework MVC nie jest stosowany tylko przy aplikacjach webowych, ale także w przypadku aplikacji desktopowych w znacznym stopniu ułatwia tworzenie aplikacji i zapewnia jej skalowalność w przyszłości dzięki czemu programista może być pewien, że nie będzie musiał w momencie wprowadzania nowych funkcjonalności lub opcji w aplikacji modyfikować całości jej kodu a jedynie wymaganą jej część.
Przy tworzeniu autorskiego systemu CMS starano się zachować wszelkie założenia zgodne z MVC dzięki czemu aplikacja jest skalowalna i prosta w rozbudowie. Całości dopełnia zaimplementowany system rozszerzeń co w niektórych przypadkach może ułatwić rozszerzenie możliwości aplikacji o dodatkowe funkcjonalności bez konieczności modyfikacji kodu programu.

Re: NatanielX
Wtorek 18 Grudzień 2007 11:00:53 pm - hwao <public_at_hwao.pl>

Tak zgodzę się. Tekst pisany/tłumaczony bardzo dawno temu, nie ukrywam że na swoje potrzeby - potem zaadaptowany żeby wrzucić dla innych.

Artykuł można by było bardzo rozbudować. Dlatego uważam iż najlepszym miejsce dla niego jest "wiki" i pomoc masy ludzi, bez której się nie obędzie - uzupełnienie brakujących wiadomości.

Slabiutko
Piątek 27 Kwiecień 2007 3:11:01 pm - NatanielX

Bardzo kiepsko napisany, suchy i nudny artykul. Bardzo slabe przyklady, masa linkow zamiast konkretow. W jednych miejscach truizmy, w drugich zupelnie niedopowiedziane wazne kwestie. Szkoda, poniewaz o MVC mozna by napisac duzo i ciekawie - jednak nie w ten sposob.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System