Võrreldes seda, kuidas male võib sündmuste koondamisega hakkama saada, kuidas MVVMCROSS sellega hakkama saab, peame mõlemas stsenaariumis kaaluma sündmuste koondamise konteksti ja eesmärki.
sündmuste liitmine males
Male kontekstis võiks sündmuste koondamine viidata mängu ajal toimuvate käikude või sündmuste jada haldamisele ja töötlemisele. See võib hõlmata iga käigu jälgimist, jäädvustamist, kontrollimist või kontrollimist. Domeenipõhise disaini (DDD) lähenemisviisis võiks malekäigud modelleerida domeenisündmustena, sarnaselt sellega, kuidas neid käsitletakse teistes sündmustest pärit süsteemides. Iga sündmus esindaks konkreetset tegevust või olekumuutust mängus, näiteks kolida või jäädvustamist. Neid sündmusi hoitakse ajakirjas või logis, võimaldades mängu praeguse oleku rekonstrueerida neid sündmusi.
Näiteks võib malemäng kasutada selliseid sündmusi nagu "Tükitud", "tükitatud" või "CheckmateCurred". Need sündmused püsivad ja neid saaks kasutada mängu analüüsimiseks või erinevate mängude järjepidevuse tagamiseks. Kuid male ise ei käsitle oma olemuselt ürituste koondamist nii, nagu tarkvara raamistikud teevad; Selle asemel pakub see domeeni, kus saab kasutada sündmuste koondamist.
sündmuste liitmine mvvmcrossis
MVVMCROSS kasutab oma Messengeri pistikprogrammi kaudu sündmuste koondamise mustrit. See pistikprogramm pakub komponentide tsentraliseeritud mehhanismi üksteisega suhtlemiseks, ilma et see oleks tihedalt seotud. See võimaldab mitmel kirjastajal vahendaja kaudu saata sõnumeid (sündmusi) mitmele abonendile, mis on Messenger ise.
MVVMCROSS Messenger toetab selliseid funktsioone nagu avaldamisüritused, sündmuste tellimine ja tellimuste haldamine. See kasutab mälulekke vältimiseks nõrku viiteid, tagades, et komponente saab koguda ka siis, kui need on tellitud sündmustele. See lähenemisviis on eriti kasulik MVVM-is (mudel-vaate-viewModel) arhitektuurides, kus vaatemudelid peavad omavahel suhtlema ilma otseste viideteta.
MVVMCROSSi sündmuste liitmise põhiaspektid hõlmavad järgmist:
- Avaldamismeetodid: komponendid saavad avaldada sündmusi, kasutades selliseid meetodeid nagu `Publish.
- Tellimismeetodid: komponendid saavad tellida sündmusi, kasutades selliseid meetodeid nagu "telli", `manustaonMainthread" või "subscriptOnthreadPouthread".
- Tellimisjuhtimine: Messenger pakub meetodeid, et kontrollida konkreetsete sündmuste või siltide tellimusi, mis võimaldavad sündmuste käitlemist paremat haldamist.
Võrdlus
Ehkki malet saab modelleerida, kasutades ürituste koondamise põhimõtteid, mis on sarnased tarkvarasüsteemidega, pakub MVVMCross MVVM -i arhitektuuridele mõeldud sündmuste koondamise konkreetset rakendamist. Peamine erinevus seisneb kontekstis ja eesmärgis:
- Male: sündmuste koondamine on rohkem mängude jälgimine ja haldamine domeeniürituste kaudu, mis on sündmuste hankimise põhimõtete kontseptuaalne rakendus.
- MVVMCROSS: Sündmuste koondamine on tehniline rakendamine rakenduses lõdvalt ühendatud komponentide vahelise suhtluse hõlbustamiseks, kasutades tsentraliseeritud käskjala.
Kokkuvõtlikult võib öelda, et male ei käsitle sündmuste koondamist samamoodi nagu MVVMCROSS; Selle asemel pakub male domeeni, kus saab kasutada sündmuste koondamise kontseptsioone. MVVMCROSS seevastu pakub tarkvara arendamiseks sündmuste koondamise konkreetset rakendust.
Tsitaadid:]
[2] https://www.mvvmcross.com/documentation/plugins/messenger
[3] https://debezium.io/blog/2020/02/10/event-sourcing-vs-cdc/
]
]
]
[7] https://www.youtube.com/watch?v=MFSRSQZA1UQ
[8] https://prismlibrary.github.io/docs/event-aggregator.html
]
]
]