Modul MVC: Model View încearcă să controleze controllerul, care este modul principal în prezent, folosit ca mod de bază pentru introducerea software-ului serverului pentru a învăța și stăpâni, iar cadrul principal Struts 1/2 JSF Wicket suportă practic modul MVC.
Totuși, odată cu popularizarea continuă a aplicațiilor B/S și Internet, Web 2.0 și un număr mare de aplicații interactive frecvente precum rețelele sociale și jocurile, modul relativ static MVC nu mai este potrivit pentru aplicații extrem de interactive și orientate spre comportament.
Modelarea domeniului DDD acordă mai multă atenție structurii, valoarea entității obiectului și serverului sunt, de asemenea, un fel de diviziune structurală, dar nu subliniază importanța atribuțiilor și comportamentelor obiectului, iar aceasta este singura diferență dintre obiecte și baze de date.
Dimpotrivă,Proiectarea obiectelor: roluri, responsabilități și colaborăriCartea propune că obiectul joacă de fapt un anumit rol, iar rolul este responsabil, iar apoi un anumit comportament interactiv va fi implementat într-un anumit context de scenă, ceea ce a fost discutat pe larg în Jdon:
DCI, model de domeniu, câteva idei pentru evenimente de domeniu
Gândire arhitecturală asincronă: Implementarea modelării domeniului cu Akka
Cartea rezumă cele patru mari dezavantaje ale controlerelor centralizate, iar controlerele MVC aparțin de fapt acestui stil de controler centralizat:
1. Logica de control poate deveni excesiv de complexă. Controlerele pot deveni complicate și este obișnuit ca mulți oameni să scrie cod de business în controlerele Action ale Struts.Toate acțiunile sunt în acțiuni, iar unele acțiuni au aproape mii de linii.
2. Controlorii pot deveni dependenți de conținutul deținătorilor de informații. Controlorii devin dependenți de centrele de date sau baze de date informaționale, controlorii fac multe lucruri, ceea ce înseamnă că obiectele de domeniu fac foarte puțin, iar controlerul nu doar că va face ceea ce la final, ci va decide și lucruri strategice, dar va fi și implicat în aspecte tactice precum modul de a face și implementarea.
3. Obiectele pot deveni cuplate indirect prin acțiunile controlerului lor. Obiectele sunt cuplate indirect prin acțiunile controlerului, un obiect este interogat în controler, apoi copiat pe alt obiect, iar cele două obiecte sunt cuplate împreună.
4. Singura muncă interesantă se face la controler.
Controlerul MVC este un fel de mod Mediator, dar și un controler centralizat, fiind principala diferență față de modul observator: modul Mediator cuprinde comunicarea, în timp ce observatorul descentralizează comunicația, din punct de vedere al comunicării, controlerul are și defectele sale inerente, ușor de devenit un concentrator mare și complet cuplat, toate acestea fiind pentruOONu este tolerat.
Arhitectura DCIEste un concept nou, care a apărut abia recent și privește software-ul dintr-o perspectivă nouă, care coincide și are dreptate în privința designului condus de datorieDDDdezvoltare și îmbunătățire.
DCI este abrevierea Interacțiunilor Contextului de Date, iar contribuția sa importantă este să promoveze conceptul de scene, care nu este menționat în cartea Duty-Driven Development, care doar neagă MVC, expune problemele sale și nu propune alternativeDCIEste arhitectura alternativă a MVC, iar DCI înlocuiește MVC cu scenarii pentru a înlocui controlerele, așa cum se arată în figura de mai jos (imaginea este de acolo).Engleză originală TheDCI Architecture: A New Vision of Object-Oriented Programming):
Scena scoate de fapt unele dintre controalele și modelele din MVC și le reasamblează sub forma unor scene cu personaje. Acesta este un unghi nou, complet diferit de modul MVC, care este mai aliniat cu acest unghiOO。
Recent, cineva a ridicat subiectulContext de scenă este un tip nou de obiect, scena nu poate fi doar înlocuităSOAServiciile web pot înlocui, de asemenea, controlerele MVC.
Personal, cred că noua arhitectură ierarhică ar putea arăta așa în viitor: Vizualizare --> Context ---> Modelul de domeniu ---> componentă/repositoriu
Modul MVC este mort.
|