Režim MVC: Model View se snaží ovládat ovladač, což je současný hlavní režim, a používá se jako základní režim pro zadávaní softwaru na server, aby se naučil a zvládl, a hlavní framework Struts 1/2 JSF Wicket v podstatě podporuje režim MVC.
Nicméně s neustálou popularizací B/S a internetových aplikací, Webu 2.0 a velkého množství častých interaktivních aplikací, jako jsou sociální média a hry, již relativně statický režim MVC není vhodný pro vysoce interaktivní a behaviorálně orientované aplikace.
Modelování DDD domény samo o sobě věnuje větší pozornost struktuře, jeho hodnota entity objekt a server jsou také jakýmsi strukturálním rozdělením, ale nezdůrazňuje důležitost úkolů a chování objektů, a to je jediný rozdíl mezi objekty a databázemi.
Naopak,Návrh objektů: Role, odpovědnosti a spolupráceKniha navrhuje, že objekt skutečně hraje určitou roli a tato role je odpovědná, a pak bude v určitém kontextu scény implementováno určité interaktivní chování, které bylo podrobně rozebráno v Jdon:
DCI, doménový model, několik nápadů pro doménové události
Asynchronní architektonické myšlení: Implementujte doménové modelování pomocí Akka
Kniha shrnuje čtyři hlavní nevýhody centralizovaných řadičů a řídicí jednotky MVC skutečně patří do tohoto stylu centralizovaných řadidel:
1. Řídicí logika může být příliš složitá. Řídicí jednotky mohou být složité a je běžné, že mnoho lidí píše obchodní kód přímo v akčních řadičích Struts.Všechny akce jsou v akcích a některé akce mají téměř tisíce řádků.
2. Kontroloři se mohou stát závislými na obsahu držitelů informací. Kontroloři se stávají závislými na informačních datových centrech nebo databázích, kontroloři dělají mnoho věcí, což znamená, že doménové objekty dělají velmi málo, a kontrolor nejen dělá co na konci, ale také rozhoduje o strategických věcech, ale také v kombinaci s taktickými otázkami, jako je jak to dělat a jak to implementovat.
3. Objekty se mohou nepřímo spojit prostřednictvím akcí jejich kontroléru. Objekty jsou nepřímo propojeny akcemi kontroleru, jeden objekt je dotazován v kontroleru a poté zkopírován do jiného objektu, přičemž oba objekty jsou propojeny.
4. Jediná zajímavá práce se odehrává v ovladači.
Řídicí systém MVC je druhem režimu Mediátor, ale také centralizovaným regulátorem, což je hlavní rozdíl oproti režimu pozorovatele: režim Mediátor zapouzdřuje komunikaci, zatímco decentralizovaná komunikace pozorovatele má z hlediska komunikace také své vrozené vady, snadno se stává velkým a plně propojeným koncentrátorem, to vše je proOONení tolerován.
Architektura DCIJe to nový koncept, který se objevil teprve nedávno a nahlíží na software z nové perspektivy, což odpovídá a má pravdu ohledně designu řízeného povinnostíDDDRozvoj a zlepšování.
DCI je zkratka Data Context Interactions (Data Context Interactions) a jeho důležitým přínosem je představit koncept scén, který není zmíněn v knize Duty-Driven Development, která pouze popírá MVC, odhaluje jeho problémy a nenavrhuje alternativyDCIJedná se o alternativní architekturu MVC a DCI nahrazuje MVC scénáři nahrazujícími řadiče, jak je znázorněno na obrázku níže (obrázek je z).Původní angličtinaDCI Architecture: A New Vision of Object-Oriented Programming):
Scéna skutečně vytáhne některé ovládací prvky a modely z MVC a znovu je sestaví do podoby scén s postavami. Je to nový úhel, který je zcela odlišný od úvah o režimu MVC, který je více v souladu s tímto úhlemOO。
Nedávno to někdo zmínilKontext scény je nový typ objektu, scénu nelze pouze nahraditSOAWebové služby mohou také nahradit MVC řadiče.
Osobně si myslím, že nová hierarchická architektura může v budoucnu vypadat takto: Zobrazit --> Kontext ---> doménový model ---> komponent/repozitor
Režim MVC je mrtvý.
|