MVC режим: Model View се опитва да контролира контролера, който е настоящият основен режим и се използва като основен начин за навлизане на сървърен софтуер за учене и усвояване, а основната рамка Struts 1/2 JSF Wicket на практика поддържа MVC режим.
Въпреки това, с непрекъснатата популяризация на B/S и интернет приложения, Web 2.0 и голям брой чести интерактивни приложения като социални медии и игри, относително статичният MVC режим вече не е подходящ за силно интерактивни и поведенчески ориентирани приложения.
Самото моделиране на DDD домейн обръща повече внимание на структурата, неговата стойност обект и сървър също е вид структурно разделение, но не подчертава значението на задълженията и поведението на обектите, и това е единствената разлика между обекти и бази данни.
НапротивДизайн на обекти: роли, отговорности и сътрудничестваКнигата предлага, че обектът всъщност изпълнява определена роля и ролята е отговорна, след което определено интерактивно поведение ще бъде реализирано в определен контекст на сцена, което е подробно обсъдено в Jdon:
DCI, домейн модел, някои идеи за домейн събития
Асинхронно архитектурно мислене: Реализирайте моделиране на домейн с Akka
Книгата обобщава четирите основни недостатъка на централизираните контролери, а контролерите на MVC всъщност принадлежат към този централизиран стил:
1. Логиката на управлението може да стане прекалено сложна. Контролерите могат да станат сложни и е обичайно много хора да пишат бизнес код в Action контролерите на Struts.Всички действия са в действия, а някои действия са почти хиляди реплики.
2. Контролерите могат да станат зависими от съдържанието на носителите на информация. Контролерите стават зависими от информационни центрове или бази данни, контролерите вършат много неща, което означава, че домейн обектите правят много малко, а контролерът не само ще прави какво в крайна сметка, но и решава стратегически решения, но и тактически въпроси като как да се направи и как да се реализира.
3. Обектите могат да се свържат косвено чрез действията на техния контролер. Обектите се свързват косвено чрез действията на контролера, един обект се запитва в контролера, след което се копира в друг обект, и двата обекта се свързват заедно.
4. Единствената интересна работа се върши в контролера.
Контролерът на MVC е вид режим Медиатор, но също така централизиран контролер, той е основната разлика от режима на наблюдателя: режимът Медиатор капсулира комуникацията, докато децентрализираната комуникация на наблюдателя, от гледна точка на комуникацията контролерът също има своите присъщи недостатъци – лесно се превръща в голям и напълно свързан концентратор, всички те са предназначени заООНе се толерира.
DCI архитектураТова е нова концепция, която се появи едва наскоро и разглежда софтуера от нова перспектива, която съвпада с и е вярна относно дизайна, ориентиран към задължениятаDDDразвитие и усъвършенстване.
DCI е съкращение от Data Context Interactions, а важният му принос е да представи концепцията за сцени, която не е спомената в книгата Duty-Driven Development, която само отрича MVC, разкрива неговите проблеми и не предлага алтернативиDCIТова е алтернативната архитектура на MVC, а DCI заменя MVC със сценарии за замяна на контролери, както е показано на фигурата по-долу (от снимката).Оригинален английски TheDCI Architecture: A New Vision of Object-Oriented Programming):
Сцената всъщност изважда някои от контролите и моделите в MVC и ги сглобява отново под формата на сцени с герои. Това е нов ъгъл, който е напълно различен от разглеждането на MVC режима, което е по-близо до този ъгълОО。
Наскоро някой повдигна тематаКонтекстът на сцената е нов тип обект, сцената не само може да бъде замененаSOAУеб услугите могат също да заменят MVC контролерите.
Лично аз мисля, че новата йерархична архитектура може да изглежда така в бъдеще: View --> Контекст ---> домейн модел ---> компонент/репозиторий
MVC режимът е мъртъв.
|