Programim dhe zhvillim, javascript, python, php, html

MVVM: Ndajeni modelin nga ViewModel

Sapo kam filluar të mësoj WPF MVVM duke përdorur Prism dhe Unity. Shkëputja e pamjes nga modeli i pamjes funksionon mjaft mirë, por nuk e kuptoj se si lidhet modeli im i pamjes dhe modeli im. Nuk ndihem e drejtë që thjesht të krijoj një EntityObject të ri pikërisht në modelin tim të pamjes. Unë e kam lexuar tashmë mostrën e WAF BookLibrary, por është mjaft e rëndë dhe shton shumë gjëra shtesë rreth pjesës thelbësore (lidhja midis pamjes dhe modelit të pamjes), dhe dokumentet Prism nuk thonë asnjë fjalë (me aq sa lexova unë it) në lidhje me ndërveprimin model - model.

A di dikush një burim të mirë që shpjegon se si të përdorni modelin dhe modelin në mënyrë të pastër ose mund të jap ndonjë këshillë?

Përshëndetje

Jay


  • Hajde, duhet të ketë një fund diku, përndryshe mund t'i hedhësh të gjitha llojet në dynamic. 09.07.2011
  • @Will: Unë mendoj se ai po kërkon më shumë këshilla për përbërjen në vend që të shtrijë gjithçka në gjenerikë. Përbërja është një nga konceptet më të vështira për t'u kuptuar në fillim për shumë njerëz, pasi duhet të dini në detaje se si aplikacioni juaj do të përshtatet së bashku. 09.07.2011

Përgjigjet:


1

Secili do të ketë mendimet e veta për këtë. Personalisht nuk e kam problem ta përdor modelin direkt në modelin e pamjes. Për mua, e gjithë ideja e një modeli pamjeje është të zgjeroni modelin tuaj në një mënyrë të tillë që të mund të konsumohet nga një pamje.

Një shembull i thjeshtë i kësaj do të ishte objekti i personit, ai do të kishte vetitë e modelit si emri dhe mosha për shembull. Kur të arrij në fazën e modelit të pamjes, mund t'i shtoj veçori si dukshmëria që nuk do të kishte kuptim në modelin e duhur.

Një pikë tjetër për t'u theksuar është se unë do të konsideroja një model si të dhëna dhe modelin e pamjes si kontekst. Pra, ju mund të keni një model të pamjes "Card" për një person, por mund të keni gjithashtu një model pamjeje "List Item" që përfaqëson të njëjtin model në një kontekst të ndryshëm, me karakteristika të ndryshme specifike të modelit të pamjes.

Unë priren t'i krijoj modelet e mia duke përdorur ndërfaqet aty ku janë të përshtatshme dhe të përdor "Inversionin e kontrollit" për t'i injektuar ato në modelin e pamjes, në këtë mënyrë e vetmja gjë që modeli im i pamjes di në të vërtetë është se ai ka nevojë për një person IP dhe se ai do të ofrohet në konstruktor. .

Siç thashë njerëzit e tjerë do të kenë ide të ndryshme, të gjitha janë të sakta dhe varet nga ju që të përcaktoni se cila i përshtatet nevojave tuaja.

08.07.2011
  • Faleminderit per pergjigjen. Fillova të kuptoj se nuk ka rrugë të artë për zbatimin e MVVM dhe lidhjes së lirë. 11.07.2011
  • @Jay: Jo nuk ka. Secili do të ketë idenë e tij se si bëhet. Më duket më mirë të mendoj nga këndvështrimi poshtë. Në këtë mënyrë pamja do të përcaktojë përmbajtjen e vm dhe vm do të përcaktojë se si është krijuar modeli. Në thelb palosni funksionalitetin në nivele më të ulëta ku ka kuptim. Nëse vm-ja juaj ka një emër dhe mbiemër, ata janë kandidatë për t'u futur në model, ku si metodë e quajtur NavigateToSomePage nuk do të kishte kuptim jashtë ViewModel. 11.07.2011
  • @Jay: Gjithashtu, nuk vlen asgjë që një model është thjesht një strofull, mund të jetë një ose më shumë klasa dhe një model pamjeje është thjesht një grupim i një ose më shumë prej këtyre klasave të mbështjella dhe të shtrira në kontekstin e pamjes. Çfarë do të thotë kjo është se modeli juaj i pamjes së detajeve mund të tërhiqet nga disa klasa në shtresën tuaj të modelit, nuk ka një lidhje 1 me 1 midis modelit dhe modelit të pamjes dhe as nuk duhet të ketë. 11.07.2011
  • Unë thjesht dua Për mua, e gjithë ideja e një modeli pamjeje është të zgjeroni modelin tuaj në mënyrë të tillë që të mund të konsumohet nga një pamje - Një mënyrë kaq e mrekullueshme për të shpjeguar një VM në mënyrë pragmatike. 13.07.2011
  • @RichardOD:Faleminderit :) Pasi e kam marrë atë koncept në kokën time, MVVM bëhet shumë më e lehtë për të punuar me të... dhe shumë më argëtuese! 13.07.2011
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..