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

Model View Controller

Model

Model ma za zadanie enkapsulacji danych od reszty aplikacji, ponieważ jest on warstwą logiczna/biznesowa. Specyfika MVC ma czynić model nie zależnym od warstwy widoku i kontrolera, ponieważ te dwie warstwy odpowiadają razem za składanie interfejsu użytkownika. Obiekt może spełniać role modelu dla bardziej skomplikowanych połączeń niż te które wchodzą w skład MVC.

Zobacz zakres obowiązków Modelu(Domain Model) i przekazywanie danych(Transaction Script) aby zorganizować poprawie swoja warstwę logiczna.

Bierny Model

W trybie biernym(pasywnym), obiekty używane w modelu, nie zostały zaprojektowane do używania ich w trójce MVC. Kontroler jest odpowiedzialny za sygnalizacje widokowi, gdy wykonuje on operacje na modelu, które wymagają zaktualizowania danych w widoku.

Bierny model jest powszechnie wykorzystywany w WEB MVC. Surowe żądanie/odpowiedz z cyklu HTTP nie wymaga aktywnego modelu. Interfejs użytkownika zostaje za każdym zbudowany na nowo, po mino zmian tylko w obrębie modelu (**autor: w aplikacji PHP nie mamy "trwałej" sesji i za każdym odwołaniem cały interfejs użytkownika, jest budowany na nowo - w przeciwieństwie do aplikacji, np.: systemowych, gdzie to zainicjowany szkielet jest wykorzystywany ciągle**). Doskonale to widać w PHP gdzie żaden stan nie jest zachowywany pomiędzy żądaniami klienta (budowa od nowa całego interfejsu).

Aktywny Model

W aktywnym Modelu, klasy modelu posiadają mechanizm zawiadomień, zwykle stosuje się w tym celu wzorzec Obserwator. Dzięki takiemu rozwiązaniu, niepowiązany widok jak i komponenty kontrolera zostają poinformowane o zmianach zachodzących w modelu. Ponieważ te komponenty rejestrują siebie w modelu, a model nie ma pojęcia o specyfikacji widoku i kontrolera, to nie niszczy niezależności modelu.

Mechanizm zawiadomień dostarcza natychmiastowego uaktualnienia informacji, czyli cechy charakterystycznej dla aplikacji MVC z GUI (Graphical User Interfaces, graficzny interfejs użytkownika).

Model Adaptator

Jest możliwe wykorzystanie wzorca Adapter (Adaptator) aby wprowadzić możliwość rozmnożenia klas modelu lub aby wdrożyć inna cechę modelu aktywnego do modelu biernego, w celu uzyskania zamiany model biernego w aktywny.

Model prezentacyjny

Założenie MVC ma na celu odseparować interfejs użytkownika od warstwy logicznej. Czyniąc tak, zyskujemy możliwość wzbogacenia naszej biblioteki komponentów, mogących być wtórnie wdrażanych w naszych aplikacjach MVC. Czasami, dane albo relacja(**Przykładowo DataGrid**) która przynależy do interfejsu użytkownika(prezentuje jakieś dane), może być zawarte po stronie modelu. Stąd obiekty które wydawałyby się być z góry modelem tak naprawdę są częścią interfejsu, to znaczy widoku i kontrolera.

Na przykład: scrollbar, pozycje i sortowanie kolumn(**tłumacz: wspomniany DataGrid).

Wyżej wspomniane sytuacje, są czasem nazywane Application Model (Model aplikacji) i określa się je wzorcem MMVC, ponieważ występują dwa oddzielne modele.

× Początek
Widok »
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