Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 10.01.2005 Ostrzeżenie: (0%)
|
W ksiazce "PHP5 i MySQL Zastosowania e-commerce" Helionu jest opis budowy sklepu na zasadzie architektury trojwarstwowej tj. warstwy prezentacji, warstwy biznesowej i warstwy danych. I tak sie zastanawiam czy to jest to samo co MVC
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 22.11.2005 Ostrzeżenie: (0%)
|
Na wstępie chciałbym się przywitać. Jestem Nowy ; )
Cytat ...nie mówiąc już o tym ze jeśli chodzi o MVC to niemal każdy ma swój punkt widzenia, interpretacje i implementacje To prawda, wzorzec architektury aplikacji MVC należy do bardzo kontrowersyjnych wzorców. Szczególnie jeśli przychodzi do jego implementacji w środowisku www (PoEAA) i szczegółów zastosowań oraz rozdzielenia zadań między poszczególne komponenty. Wynika to zapewne z tego, że nie jest to prosty wzorzec dający propozycje gotowych interfejsów klas, a pewne podejście programistyczne w budowaniu struktury aplikacji z szczególnym uwzględnieniem separacji podstawowych i różnych zadań zupełnie jak w architekturze wielowarstwowej. A także jego pierwotne przeznaczenie dla interfejsów GUI, które znacznie różnią się od aplikacji internetowych. Cytat ...nie wiem, czy jest większy sens się nad tym rozwodzić... ...ależ oczywiście że jest. O ile jest wiele propozycji implementacji wzorca MVC i sporów co do szczegółów zastosowania w aplikacjach webowych to sama idea wzorca jest bardzo przejrzysta i atrakcyjna. http://www.phpwact.org/pattern/model_view_controller June 2003 - php Architekt - Industrial Strength MVC http://www.phppatterns.com/docs/design/mvc_pattern_version_2 Napewno było na ten temat wiele dyskusji, ale pozwolicie, że spróbuję jeszcze raz zebrać podstawowe informacje... Wytyczne wzorca projektowego MVC mówią o podziale aplikacji lub jej fragmentu na trzy części: model, widok i kontroler. Funkcje poszczególnych elementów oraz przepływ danych wywodzi się z aplikacji z graficznymi interfejsami GUI, gdzie można wyróżnić proces wprowadzania danych, przetwarzania ich i prezentowania. Za każdą z tych funkcji odpowiada odpowiednia część wzorca. Model zawiera w sobie kluczowy element aplikacji, logikę biznesową. Głównym celem wzorca MVC jest uniezależnienie modelu od widoku i kontrolera, które razem tworzą interfejs aplikacji. Ponieważ model powinien pozostać niezależny od prezentacji, nie może odnosić się ani do widoku ani kontrolera. W warunkach sieci web wzorzec MVC korzysta z pasywnych obiektów modeli, które są w pełni odseparowane od pozostałych komponentów, a operacje na nich i pobieranie danych wykonywane są przez kontroler i widok. Model jest odpowiedzialny za zachowanie i przetwarzanie danych, odpowiada na zapytania o jego stan oraz reaguje na polecenia zmiany stanu. Odpowiada za dostęp do danych i nie decyduje o sposobie ich prezentacji, za którą odpowiedzialne są powiązane z nim widoki Widok pobiera dane z modelu i prezentuje je użytkownikowi, tworząc tym samym warstwę prezentacji aplikacji. Widok charakteryzuje się swobodnym dostępem do modelu, ale nie ma możliwości wpływać na jego stan. Może tylko odczytywać i reprezentować konkretny stan modelu. Odczyt danych z modelu odbywa się za pośrednictwem odpowiednich metod modelu. Kontroler odbiera i tłumaczy dane wejściowe na odpowiednie zapytania do modelu lub widoku. W zależności od żądań jakie przychodzą z poza aplikacji (w przypadku programów z interfejsem www są to zapytania GET i POST) wywołuje odpowiednie akcje. Kontroler jest odpowiedzialny za wywoływanie odpowiednich metod na modelu, które wpływają na jego stan. Następnie, w przypadku modeli pasywnych, informuje on widok o zmianie stanu modelu. W przypadku wzorca MVC kontroler nie jest, jak się często mylnie sądzi, rodzajem mediatora pomiędzy widokiem a modelem. Zarówno kontroler jak i widok mają takie same możliwości pobierania danych z modelu. Kontroler nie przekazuje danych z modelu do widoku. Idąc za przemyśleniami autora „php|architect's Guide to php Design Patterns” Jason E. Sweat to czym naprawdę różnią się wszystkie implementacje wzorca MVC w świecie php to właśnie sposób rozwiązania działania Kontrolera. Jeśli chodzi o komponent widoku większość frameworków opiera go na własnym lub jednym z powszechnie znanych systemów szablonów implementującym wzorzec Template View. Stosunkowo prosta sprawa jest też w przypadku Modelu. php doczekało się już kilku popularnych implementacji Wzorców DAO czy bardziej skomplikowanych frameworków ORM. Wracając do porównania architektury wielowarstwowej i wzorca MVC http://www.tonymarston.net/php-mysql/infra...-faq.html#faq26 Cel w postaci odseparowania fragmentów kodu odpowiedzialnych za prezentację, logikę biznesową oraz dostęp i gromadzenie danych, jest wspólny zarówno dla architektur wielowarstwowych jak i dla wzorca MVC. Dlatego też istnieje możliwość przeplatania się tych dwóch podejść i wykorzystywania ich równolegle wykorzystując tym samym korzyści płynące z obydwu rozwiązań. Na tym etapie możemy mówić o podobieństwie tych dwóch podejść. Podstawowe różnice architektur sprowadzają się do tego, iż w MVC model odpowiedzialny jest za dostęp i zachowanie się danych, co może odpowiadać warstwom logiki biznesowej i dostępu do danych w modelu trójwarstwowym. Warstwa prezentacji w modelu warstwowym odpowiada za komunikacje z użytkownikiem (zarówno pobieranie danych wejściowych jak i prezentowanie danych wyjściowych), w modelu MVC rolę tą spełniają widok i kontroler To tyle moich rozważań Z poważaniem, kf |
|
|
|
Pakinter Czy MVC i architektura trójwarstwowa to to samo? 13.11.2005, 16:19:22
NuLL Mnie sie wydaje ze tak - w koncu MVC to tez 3 wars... 13.11.2005, 16:21:53
sopel zwał jak zwał, zależy o co chodzi dokładniej, nie ... 13.11.2005, 16:26:47
bela_666 Przetłumacz sobie skrót MVC i zobaczysz
I przeczy... 13.11.2005, 16:56:49
Speedy w MVC, to warstwę prezentacyjną masz na pewno, ale... 13.11.2005, 21:10:10
bela_666 Przecież model to warstwa danych. 13.11.2005, 22:15:46
Speedy Z tego co wiem, model nie ingeruje w modyfikację d... 14.11.2005, 01:12:19
bela_666 Miałem na myśli pobieranie, łączenie się z bazą. N... 14.11.2005, 14:28:46
NuLL
Jak nazwa forum wskazuje to forum nie sluzy do pi... 8.12.2005, 00:17:20
hwao CytatMVC błędnie jest mylone z innymi wzorcami, kt... 8.12.2005, 09:02:26 ![]() ![]() |
|
Aktualny czas: 26.11.2025 - 04:45 |