MVVM ja MVP

Anonim

Ohjelmistokehityksen tarkoituksena on rakentaa ratkaisuja, jotka vastaavat käyttäjien ja yritysten tarpeita ja ongelmia. Tämän saavuttamiseksi erilaiset teknologiat ja arkkitehtuurimallit pitävät Model-View-ViewModel (MVVM) ja Malli-näkymä-esittelijä (MVP) käytetään.

Kuten mitä tahansa valmistetaan, ensimmäinen askel on suunnittelu ja suunnitteluvaihe. Ohjelmistosuunnitteluprosessi voi olla eritelmä, joka perustuu ensisijaiseen teknologia -työkaluihin, ja se voi kattaa kaiken toiminnan suunnittelu-, suunnittelu-, toteutus-päivityksistä ja muutoksista.

Se kattaa alhaisen tason ja korkean tason arkkitehtuurisuunnitelman, joka perustuu valittuihin arkkitehtuurikuvioihin ja kartoittaa uudelleenkäytettäviä ratkaisuja suunnittelumallien avulla.

Ohjelmistojärjestelmä

Ohjelmiston arkkitehtuuri määrittelee sovelluksen rakenteen, joka vastaa teknisiä, operatiivisia ja käyttäjän vaatimuksia ja viittaa koodin organisointiin ja hallintaan.

Päätös ohjelmistosovelluksen arkkitehtuurista on kriittinen, koska se ei ole helppo, muuttuva osa jo kehitetystä sovelluksesta; siksi arkkitehtoninen malli on päätettävä ennen kuin jokin ohjelmointi alkaa.

Arkkitehtoniset mallit poikkeavat jonkin verran suunnittelumalleista, koska niiden soveltamisala on paljon laajempi käsittelemällä teknisiä kysymyksiä, kuten laitteiston suorituskykyä ja rajoituksia sekä korkeaa saatavuutta. Esimerkkejä eri arkkitehtuurikuviosta ovat MVC, MVVM ja MVP.

Toisaalta suunnittelumallit ovat muodollisia parhaita käytäntöjä, jotka helpottavat uudelleenkäytettävää esinehakuista kehitystä ja ovat helpommin ylläpitäviä ja muuttuvia kuin sovelluksen arkkitehtuuri.

Arkkitehtuurimallit

Malli View Controller (MVC) oli yksi ensimmäisistä arkkitehtonisista kuvioista, joita kehitettiin web-sovelluksille ja jotka saivat suosiota puolivälistä 90-luvun loppupuolelle, erityisesti Java-yhteisöä.

Uudemmat kehykset, kuten Django for Python and Rails (Ruby on Rails), keskittyvät voimakkaasti nopeaan käyttöönottoon, minkä vuoksi MVC on ostamassa markkinaosuutta arkkitehtonisten kuvioiden suurena vetonaulona.

Perinteisesti käyttöliittymäkehityksessä oli paljon koodia käsitellä monimutkaista logiikkaa, joten arkkitehtuurikuviot on suunniteltu vähentämään koodia käyttöliittymän tasolla, mikä tekee siitä "puhtaamman" ja hallittavamman.

Joten, MVC-mallilla, koostuu web-sovelluksesta

  • Malli (Tiedot)
  • näkymä (rajapinta tietojen tarkastelemiseksi ja muokkaamiseksi)
  • ohjain (tiedot ja toimet suoritetuista tiedoista)

Malli käsittelee dataa ja liiketoiminnan logiikkaa ja siellä on ei riippuvuudet Malli ja ohjain tai näkymä.

näkymä esittää tiedot käyttäjälle tuetussa muodossa ja vaaditussa ulkoasussa, ja kun ohjain vastaanottaa käyttäjäpyyntöjä (tietojen noutamiseen), se pyytää tarvittavia resursseja, jotka tarvitaan pyynnön täyttämiseen.

Käytetään tätä mallia online-kirjakaupan rakentamiseen.

Käyttäjät voivat etsiä, tarkastella, rekisteröidä ja ostaa kirjoja sekä hallita niiden profiileja ja kirjan luetteloita. Kun käyttäjä napsauttaa SCI-FI-luokkaa, kaikkien siihen liittyvien kirjojen tulee näkyä saatavilla.

ohjaimet käsitellä toimia, jotka hallitsevat kirjoja (luettelo, lisätä, katsoa jne.). Voi olla useita ohjaimet yhdellä päällä ohjain "Liikenteen ohjaaminen".

Tässä esimerkissä ohjain nimeltään controller_books.php ja Malli (esim. model_books.php) käsittelee kirjoihin liittyviä tietoja ja logiikkaa.

Lopuksi, erilainen Luettu tarvitaan, kuten kun lisäät kirjoja online-koriin tai kun tarkastelet kirjan yksityiskohtia kuvia ja arvosteluita.

controller_books.php vastaanottaa toiminnon (käyttäjän pyyntö) päältä ohjain (esimerkiksi. index.php). controller_books.php analysoi pyynnön ja kutsuu model_books.php (tiedot) palauttamaan SCI-FI -kirjojen luettelon.

Vastuu Malli on tarjota kyseiset tiedot käyttäen mitä tahansa käytettyä logiikkaa (käyttämällä hakusuodattimia). ohjain sitten vie tiedot ja välittää ne asiaan näkymä (haku-näkymä, tulostusnäkymä, yksityiskohtainen näkymä jne.) ja tiedot esitetään (näkymä) käyttäjälle, joka käynnisti pyynnön.

Tämä on MVC-mallin perustekijöitä, jotka ovat kehittäneet arkkitehtuurikuviot, kuten Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC) ja Malli-näkymä-sovitin (MVA) jne.

MVP-kuvio

Malli-näkymä-esittelijä (MVP)

MVP-kuvio on ollut jonkin aikaa ja on MVC: n muunnelma. Se on suunniteltu erityisesti testiautomaatioon, jossa tavoitteena oli lisätä koodausta, jota voidaan testata automaation avulla, ja malli korjaa joitakin ongelmia esittelytasolla ja eristää liiketoimintalogiikan käyttöliittymästä.

Näyttö on näkymä, sen tiedot näytetään mallina ja esittelijä koukistaa molemmat yhteen.

MVP koostuu seuraavista osista, joilla on erilliset vastuut:

  • Malli (määrittää näytettävät tiedot)
  • näkymä (näyttää tiedot mallista ja reitittää käyttäjän pyynnöt esittelijälle).
  • Juontaja (vuorovaikuttaa näkymän ja mallin välillä ja koukuttaa ne yhteen)

näkymä (web-sivu) näyttää ja hallinnoi sivun säätimiä lähettämällä tapahtumia (käyttäjän pyynnöt) Juontaja jotka aloitettiin näkymä.

Juontaja vastaa näihin tapahtumiin lukemalla ja päivittämällä Malli muuttaa näkymä ja siksi esittäjän vastuu on sitoa Malli ja näkymä.

Tarkasteltuaan MVC ja MVP mallit, molemmilla on erillinen vastuu kunkin komponentin osalta ja ne edistävät erottamista näkymä (UI) ja Malli (Tiedot). Merkittävät erot näiden mallien välillä ovat ilmeisempää mallien toteuttamisessa.

MVP voi olla monimutkainen malli, jota voidaan toteuttaa kehittyneisiin ratkaisuihin, mutta jolla on varmasti suuri hyöty, jos se toteutetaan hyvin suunniteltuna ratkaisuna, vaikka se ei välttämättä ole sopiva valinta yksinkertaisiin ratkaisuihin.

MVVM-malli

Model-View-ViewModel (MVVM)

MVVM kuvio on suunniteltu erityisesti Windows Presentation Foundation (WPF) ja Microsoft Silverlight -alustaan, ja sitä voidaan käyttää kaikissa XAML [i] alustoille.

WPF on Microsoft-järjestelmä, joka tekee käyttöliittymät Windows-pohjaisista ohjelmista ja julkaistiin ensimmäisen kerran.NET Framework 3.0: ssa.

MVVM puhdistettiin MVC ja tässä kuvassa näkymä on aktiivinen käyttäytymisen, tapahtumien ja tietojen sitomisen ja näkymä synkronoidaan ViewModel (joka mahdollistaa esityksen erottamisen ja ilmaisee menetelmiä ja komentoja hallita ja manipuloida Malli.

MVVM käsittää kolme ydinkomponenttia:

  • Malli (edustaa tietoja validoitumisella ja liiketoimintalogiikalla)
  • näkymä (Näkymä on vastuussa käyttäjän näkemästä näytöllä olevan rakenteen, ulkoasun ja ulkonäön määrittelystä. Ideaalisti näkymä määritellään puhtaasti XAML: llä, jolla on rajoitettu koodi, joka ei sisällä liiketoimintalogiikkaa. sitova näkymä ja ViewModel näyttötaulukoita, jotka synkronoivat mallin ja ViewModel View-näkymän kanssa)
  • ViewModel (erottaa näkymän mallista ja altistaa menetelmät ja käskyt manipuloimaan tietoja (malli).

näkymä vastaanottaa tietoja ViewModel (datan sitomisen ja menetelmien avulla) ja ajon aikana näkymä muuttuu vastauksena tapahtumiin ViewModel.

ViewModel välittää näkymä ja Malli ja käsittelee näkymä logiikka. Se toimii vuorovaikutuksessa Malli - tietojen vastaanottaminen Malli ja esittää sen näkymä näyttää.

Nämä komponentit on irrotettu toisistaan, mikä lisää joustavuutta työskennellä heille itsenäisesti, eristää yksikkötestaukset ja vaihtaa ne pois vaikuttamatta mihinkään muuhun osaan.

Tämä rakenne sallii Malli ja muut komponentit kehittymään itsenäisesti, jolloin kehittäjät voivat työskennellä ratkaisun eri näkökohtia samanaikaisesti. Esimerkiksi, kun suunnittelijat työskentelevät näkymä, he yksinkertaisesti tuottavat datanäytteitä tarvitsematta päästä muihin komponentteihin. Tämä helpottaa käyttöliittymän helppoa uudelleensuunnittelua näkymä toteutetaan XAML: ssä.

Kuten aiemmin mainittiin MVP, yksinkertaiset ratkaisut eivät vaadi arkkitehtuuria ja suunnittelumalleja, kuten "Hello World! Kuitenkin, kun otetaan käyttöön enemmän ominaisuuksia, toimintoja ja komponentteja, sovelluksen monimutkaisuus kasvaa ja myös koodin määrä, jota on hallittava.

Yhteenvetona

Käyttöliittymän kehittämisen alusta alkaen suunnittelumallit ovat yhä suosittuja kehitystyön helpottamiseksi, sovellukset ovat skaalautuvampia ja helpottavat testauksen helpottamista.

Kuvassa oleva ero MVP: n ja MVVM-mallien välillä:

  • Molemmissa MVP ja MVVM, näkymä on tulopiste sovellukseen
  • Sisään MVP, on yksi-to-one kartoitus välillä näkymä ja Juontaja, missä MVVM, suhde on yksi-monta välillä näkymä ja ViewModel.
  • MVP käytetään ensisijaisesti Windows Forms- ja Windows Phone -sovelluksiin ja MVVM on suunniteltu Silverlightille, WPF: lle, Knockout / AngularJS: lle jne.