MVC-tila: Model View yrittää ohjata ohjainta, joka on nykyinen mainstream-tila, ja sitä käytetään palvelinohjelmiston oppimisen ja masteroinnin perustilana, ja mainstream framework Struts 1/2 JSF Wicket tukee käytännössä MVC-tilaa.
Kuitenkin B/S- ja Internet-sovellusten, Web 2.0:n sekä lukuisien interaktiivisten sovellusten, kuten sosiaalisen median ja pelien, jatkuvan yleistymisen myötä suhteellisen staattinen MVC-tila ei enää sovellu erittäin interaktiivisiin ja käyttäytymiseen keskittyviin sovelluksiin.
DDD-domain-mallinnus kiinnittää enemmän huomiota rakenteeseen, sen entiteettiarvo, objekti ja palvelin on myös eräänlainen rakenteellinen jako, mutta se ei korosta objektien velvollisuuksien ja käyttäytymisen merkitystä, ja tämä on ainoa ero objektien ja tietokantojen välillä.
Päinvastoin,Objektisuunnittelu: Roolit, vastuut ja yhteistyötKirja ehdottaa, että objekti näyttelee tiettyä roolia, ja rooli on vastuussa, ja sitten tietty interaktiivinen käyttäytyminen toteutetaan tietyssä kohtauskontekstissa, mikä on käsitelty laajasti Jdonissa:
DCI, toimialamalli, joitakin ideoita aluetapahtumiin
Asynkroninen arkkitehtoninen ajattelu: Toteuta domain-mallinnus Akkalla
Kirja tiivistää keskitettyjen ohjainten neljä suurta haittaa, ja MVC:n ohjaimet kuuluvat itse asiassa tähän keskitettyyn ohjaintyyliin:
1. Ohjauslogiikka voi olla liian monimutkaista. Ohjaimet voivat olla monimutkaisia, ja on yleistä, että monet kirjoittavat liiketoimintakoodia Strutsin Action-ohjaimilla.Kaikki toiminnot ovat toiminnassa, ja jotkut toiminnot ovat lähes tuhansia rivejä.
2. Controllerit voivat tulla riippuvaisiksi tiedonhaltijoiden sisällöstä. Controllerit tulevat riippuvaisiksi tietokeskuksista tai tietokannoista, controllerit tekevät paljon asioita, mikä tarkoittaa, että domain-objektit tekevät hyvin vähän, ja controller ei ainoastaan tee mitä lopulta, vaan myös päättää strategisista asioista, mutta myös taktisiin kysymyksiin, kuten miten se tehdään ja miten toteutetaan.
3. Objektit voivat kytkeytyä epäsuorasti ohjaimen toiminnan kautta. Objektit kytkeytyvät epäsuorasti toisiinsa ohjaimen toimintojen kautta, yksi objekti haetaan ohjaimessa ja kopioidaan toiseen, ja nämä kaksi objektia kytketään toisiinsa.
4. Ainoa mielenkiintoinen työ tehdään ohjaimessa.
MVC:n ohjain on eräänlainen välittäjätila, mutta myös keskitetty ohjain, se on pääasiallinen ero havaitsijatilaan: välittäjätila kapseloi viestinnän, kun taas havaitsijan hajautettu viestintä, viestinnän näkökulmasta ohjaimella on myös omat puutteensa, helppo muuttua suureksi ja täysin kytkettyksi keskitykseksi, nämä kaikki ovat tarkoitettuOOSitä ei suvaita.
DCI-arkkitehtuuriSe on uusi konsepti, joka on vasta äskettäin noussut esiin ja tarkastelee ohjelmistoja uudesta näkökulmasta, mikä sopii yhteen velvollisuuslähtöisen suunnittelun kanssa ja on oikeassa siinäDDDkehitys ja parantaminen.
DCI on lyhenne sanoista Data Context Interactions, ja sen tärkeä panos on tuoda esiin kohtausten käsite, jota ei mainita kirjassa Duty-Driven Development, joka vain kiistää MVC:n, paljastaa sen ongelmat eikä ehdota vaihtoehtojaDCISe on MVC:n vaihtoehtoinen arkkitehtuuri, ja DCI korvaa MVC:n skenaarioilla, jotka korvaavat ohjaimet, kuten alla olevassa kuvassa on esitetty (kuva on otettu).Alkuperäinen englanti TheDCI Architecture: A New Vision of Object-Oriented Programming):
Kohtaus kaivaa esiin joitakin ohjaimia ja malleja MVC:ssä ja kokoaa ne hahmokohtauksina. Tämä on uusi kulma, joka poikkeaa täysin MVC-tilan näkökulmasta, joka on lähempänä tätä kulmaaOO。
Viime aikoina joku on ottanut asian esiinKohtauskonteksti on uusi objektityyppi, kohtausta ei voi vain korvataSOAVerkkopalvelut voivat myös korvata MVC-ohjaimet.
Henkilökohtaisesti uskon, että uusi hierarkkinen arkkitehtuuri saattaa tulevaisuudessa näyttää tältä: Katso --> Konteksti ---> Domain-malli ---> komponentti/respositorio
MVC-tila on kuollut.
|