Tryb MVC: Model View próbuje sterować kontrolerem, który jest obecnie głównym trybem, i służy jako podstawowy tryb wprowadzania oprogramowania serwerowego do nauki i opanowania, a główny framework Struts 1/2 JSF Wicket zasadniczo obsługuje tryb MVC.
Jednak wraz z ciągłą popularyzacją aplikacji B/S i Internetu, Web 2.0 oraz wielu częstych aplikacji interaktywnych, takich jak media społecznościowe i gry, stosunkowo statyczny tryb MVC nie nadaje się już do wysoce interaktywnych i nastawionych na zachowanie aplikacji.
Samo modelowanie domeny DDD zwraca większą uwagę na strukturę, a wartość jednostki, obiekt i serwer są również rodzajem podziału strukturalnego, ale nie podkreśla znaczenia zadań i zachowań obiektów, co jest jedyną różnicą między obiektami a bazami danych.
Wręcz przeciwnie,Projektowanie obiektów: role, obowiązki i współpracaKsiążka zakłada, że obiekt faktycznie pełni określoną rolę, a rola jest odpowiedzialna, a następnie w określonym kontekście scenowym zostanie zaimplementowane określone interaktywne zachowanie, co zostało dokładnie omówione w Jdon:
DCI, model domenowy, kilka pomysłów na zdarzenia domenowe
Myślenie architektoniczne asynchroniczne: Implementacja modelowania domenowego za pomocą Akka
Książka podsumowuje cztery główne wady scentralizowanych kontrolerów, a kontrolery MVC faktycznie należą do tego stylu scentralizowanego kontrolera:
1. Logika sterowania może być zbyt skomplikowana. Sterowniki mogą być skomplikowane i często wiele osób pisze kod biznesowy w kontrolerach akcji firmy Struts.Wszystkie akcje są akcjami, a niektóre to niemal tysiące linijek.
2. Kontrolerzy mogą stać się zależni od treści posiadaczy informacji. Kontrolerzy stają się zależni od centrów danych lub baz danych, kontrolerzy wykonują wiele rzeczy, co oznacza, że obiekty domenowe robią bardzo niewiele, a kontroler nie tylko robi to, co ostatecznie, ale także podejmuje decyzje strategiczne, a także w połączeniu z kwestiami taktycznymi, takimi jak jak to zrobić i jak to wdrożyć.
3. Obiekty mogą być powiązane pośrednio poprzez działania ich kontrolera. Obiekty są pośrednio powiązane przez działania kontrolera, jeden obiekt jest zapytywany w kontrolerze, a następnie kopiowany do innego obiektu, a oba obiekty są ze sobą powiązane.
4. Jedyną ciekawą pracą wykonuje się w kontrolerze.
Kontroler MVC jest rodzajem trybu Mediatora, ale także scentralizowanym kontrolerem, co stanowi główną różnicę w stosunku do trybu obserwatora: tryb Mediator obejmuje komunikację, podczas gdy komunikacja zdecentralizowana obserwatora, z punktu widzenia komunikacji, kontroler ma swoje wady, łatwo stać się dużym i w pełni sprzężonym koncentratorem, które wszystkie są dlaOONie jest tolerowany.
Architektura DCITo nowa koncepcja, która pojawiła się dopiero niedawno i patrzy na oprogramowanie z nowej perspektywy, co pokrywa się z projektowaniem opartym na obowiązkach i ma racjęDDDRozwój i doskonalenie.
DCI to skrót od Data Context Interactions, a jego ważnym wkładem jest przedstawienie koncepcji scen, która nie jest wspomniana w książce Duty-Driven Development, która jedynie zaprzecza MVC, ujawnia jego problemy i nie proponuje alternatywDCIJest to alternatywna architektura MVC, a DCI zastępuje MVC scenariuszami zastępującymi kontrolery, jak pokazano na poniższym rysunku (zdjęcie pochodzi z).Oryginalny angielski TheDCI Architecture: A New Vision of Object-Oriented Programming):
Scena faktycznie wykopuje część sterowania i modeli z MVC i składa je na nowo w formie scen postaci. To nowy kąt, zupełnie inny niż rozważanie trybu MVC, które bardziej odpowiada temu kątowiOO。
Ostatnio ktoś o tym wspomniałKontekst sceny to nowy typ obiektu, scenę nie tylko można zastąpićSOAUsługi sieciowe mogą również zastąpić kontrolery MVC.
Osobiście uważam, że nowa hierarchiczna architektura może w przyszłości wyglądać tak: Zobacz --> Kontekst ---> Model domeny ---> komponent/repozytorium
Tryb MVC nie działa.
|