Według Sun i Msdn jest to wzorzec projektowy.
Według Wikipedii jest to wzorzec architektoniczny
W porównaniu do wzorców projektowych, wzorce architektoniczne mają większą skalę. (Wikipedia - wzorzec architektoniczny )
Czy jest to wzór architektoniczny, który ma również wzór projektowy?
Która z nich jest prawdziwa?
Odpowiedzi:
MVC to bardziej wzorzec architektoniczny, ale nie do pełnego zastosowania. MVC dotyczy głównie warstwy interfejsu użytkownika / interakcji aplikacji. Nadal będziesz potrzebować warstwy logiki biznesowej, może jakiejś warstwy usług i warstwy dostępu do danych. To znaczy, jeśli jesteś w podejściu wielopoziomowym.
źródło
Dlaczego jeden z nich musi być prawdziwy?
Oba mogą być prawdziwe, w zależności od punktu widzenia.
MVC może być wzorcem architektonicznym, jeśli stanowi podstawę architektury aplikacji.
Można go również postrzegać jako po prostu wzorzec projektowy, abstrakcyjne pojęcie, które ma zastosowanie do każdej aplikacji.
źródło
Wzorce projektowe mówią, jak efektywnie pisać kod (biorąc pod uwagę metryki kodu ).
Kilka korzyści:
Wzorce architektoniczne mówią, jak efektywnie wykorzystywać zasoby.
źródło
Wiem, że udzielono na to odpowiedzi jakiś czas temu, ale nikt jeszcze nie wspomniał o książce, która rozsławiła MVC: Pattern-Oriented Software Architecture (POSA) autorstwa Buschmanna i innych, opublikowanej w 1996 roku. Chociaż nie jest tak szeroko czytana jak książka Wzorce projektowe , Gamma i wsp., POSA jest jedną z podstawowych książek używanych przez społeczność wzorców.
Aha, i POSA bardzo wyraźnie identyfikuje MVC jako wzorzec architektoniczny. Moje przeczucie jest takie, że MS i Sun są po prostu niechlujne i nazywają każdy wzór „wzorcem projektowym”.
źródło
Myślę, że oba są prawdziwe. Jeśli patrzysz na konkretną instancję MVC w frameworku takim jak Ruby on Rails, ta instancja jest bardziej wzorcem projektowym. Jeśli spojrzysz na MVC jako na ogólną koncepcję , jest to bardziej wzór architektoniczny.
źródło
Wzorce projektowe wewnątrz triady klas Model / Widok / Kontroler (MVC) obejmują i nie mogą być ograniczone do:
Obserwator , odsprzęganie obiektów w taki sposób, że zmiany w jednym (modelu) mogą wpływać na dowolną liczbę innych (widoki) bez wymagania, aby zmieniony obiekt (model) poznał szczegóły innych (widoki).
Złożony , który pozwala nam traktować obiekt grupowy (widok złożony) tak samo, jak traktujemy jeden z jego pojedynczych obiektów (komponenty widoku).
Strategia , gdzie widok używa instancji podklasy kontrolera do implementacji określonej strategii odpowiedzi; Aby zaimplementować inną strategię, wystarczy zastąpić instancję innym rodzajem kontrolera.
Factory Method , określając domyślną klasę kontrolera dla widoku.
Dekorator , dodający przewijanie do widoku.
Odniesienie
Eric Gamma, Richard Helm, Ralph Johnson i John Vlissides. Wzorce projektowe: elementy oprogramowania obiektowego wielokrotnego użytku . Addison-Wesley, Reading, MA, 1994.
źródło
MVC zawsze wspominano i wprowadzano jako warstwę prezentacji w książkach o architekturze oprogramowania.
Przeczytaj te książki:
Projektowanie rozwiązań Microsoft.NET dla przedsiębiorstw (prasa Microsoft)
Profesjonalne wzorce projektowe ASP.NET (Wrox)
Wzorce rozwiązań dla przedsiębiorstw korzystających z Microsoft.NET (prasa Microsoft)
Wzorce architektury aplikacji korporacyjnych (Addison Wesley)
Praktyczny przewodnik po architekturze korporacyjnej (Prentice Hall)
źródło
Jeśli umieścisz dziesięciu architektów oprogramowania w jednym pomieszczeniu i poprosisz ich o omówienie wzoru Model-View-Controller, otrzymasz dwanaście różnych opinii. … Niektórzy z purystów nieuchronnie będą mieli skrupuły z tym, co nazywam „MVC”. Zapraszam do zostawienia ognistego komentarza na tablicy ogłoszeń u dołu tej strony internetowej. Chętnie przedstawię różne spojrzenia na to, co oznacza MVC, ale pamiętaj, że mnie to nie obchodzi.
Josh Smith
źródło
Według Martina Fowlera są to architektury GUI: architektury Martina Fowlera-GUI
Zależy to od rozmiaru aplikacji, ponieważ wpływa tylko na klasy związane z GUI, w małej (głównie GUI) można to uznać za wzorzec architektoniczny, podczas gdy w ogromnym byłby to po prostu wzorzec projektowy, który zastosujesz do GUI kod (może to być 10% kodu aplikacji).
źródło
MVC to wzorzec architektury. Bardzo jasno określone i pokazane na http://molecularsciences.org/zend/mvc_model_view_controller
źródło