Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako šah obravnava združevanje dogodkov v primerjavi z mvvmcross


Kako šah obravnava združevanje dogodkov v primerjavi z mvvmcross


Če primerjamo, kako lahko šah obravnava združevanje dogodkov s tem, kako se MVVMcross obvlada, moramo v obeh scenarijih upoštevati kontekst in namen združevanja dogodkov.

Združevanje dogodkov v šahu

V okviru šaha bi se lahko združevanje dogodkov nanašalo na upravljanje in obdelavo zaporedja potez ali dogodkov, ki se pojavijo med igro. To bi lahko vključevalo sledenje vsake poteze, zajem, preverjanje ali preverjanje. V pristopu oblikovanja domene (DDD) bi lahko šahovske poteze modelirali kot domenske dogodke, podobno kot z njimi ravnati v drugih sistemih, ki se nanašajo na dogodke. Vsak dogodek bi predstavljal določeno akcijsko ali državno spremembo v igri, na primer komad, ki se premika ali zajame. Ti dogodki bi bili shranjeni v dnevniku ali dnevniku, kar bi omogočilo rekonstruiranje trenutnega stanja igre s ponovitvijo teh dogodkov.

Na primer, šahovska igra lahko uporablja dogodke, kot so "delid", "zajet" ali "Checkmateoccurred." Ti dogodki bi bili vztrajali in bi jih lahko uporabili za analizo igre ali za zagotovitev doslednosti v različnih državah z igrami. Vendar šah sam sam po sebi ne obravnava združevanja dogodkov v načinu, kako to počnejo okviri programske opreme; Namesto tega zagotavlja domeno, kjer je mogoče uporabiti združevanje dogodkov.

združevanje dogodkov v mvvmcross

MVVMcross uporablja vzorec združevanja dogodkov prek svojega vtičnika Messengerja. Ta vtičnik ponuja centraliziran mehanizem za komponente, s katerimi lahko komunicirajo med seboj, ne da bi bili tesno povezani. Več založnikom omogoča pošiljanje sporočil (dogodkov) več naročnikom prek mediatorja, ki je sam glasnik.

MVVMcross Messenger podpira funkcije, kot so objavljanje dogodkov, naročanje na dogodke in upravljanje naročnin. Uporablja šibke reference za preprečevanje uhajanja spomina in zagotavlja, da se komponente lahko zbirajo smeti, tudi če so naročeni na dogodke. Ta pristop je še posebej uporaben v arhitekturah MVVM (Model-View-ViewModel), kjer morajo modeli ogledov medsebojno komunicirati brez neposrednih referenc.

Ključni vidiki združevanja dogodkov MVVMcrossa vključujejo:

- Metode objavljanja: Komponente lahko objavljajo dogodke po metodah, kot je "Publish".
- Naročne metode: Komponente se lahko naročijo na dogodke po metodah, kot so `naročnina`,` naročnineonmaintHread` ali `naročninethreadPoolThread`.
- Upravljanje naročnin: Messenger ponuja metode za preverjanje, ali obstajajo naročnine za določene dogodke ali oznake, kar omogoča boljše upravljanje ravnanja z dogodki.

Primerjava

Medtem ko je mogoče šah modelirati z uporabo načel združevanja dogodkov, podobnih v programskih sistemih, MVVMcross ponuja posebno izvedbo združevanja dogodkov, namenjenega za arhitekture MVVM. Glavna razlika je v kontekstu in namenu:

- Šah: Združevanje dogodkov bolj govori o sledenju in upravljanju držav igre z domenskimi dogodki, kar je konceptualna uporaba načel za pridobivanje dogodkov.
- MVVMcross: Agregacija dogodkov je tehnična izvedba za olajšanje komunikacije med ohlapno povezanimi komponentami v aplikaciji z uporabo centraliziranega messengerja.

Če povzamemo, šah ne "obvlada" združevanja dogodkov na enak način, kot to počne mvvmcross; Namesto tega Ches zagotavlja domeno, kjer je mogoče uporabiti koncepte združevanja dogodkov. MVVMcross na drugi strani ponuja konkretno izvajanje združevanja dogodkov za razvoj programske opreme.

Navedbe:
[1] https://ep2024.europython.eu/session/event-sourcing-from-the-ground-up
[2] https://www.mvvmcross.com/documentation/plugins/messenger
[3] https://debezium.io/blog/2020/02/10/event-sourcing-vs-cdc/
[4] https://github.com/mateusznakodach/ddd.eventsourcing.portsandadapters.typescript.nestjs.chess
[5] https://www.linkedin.com/advice/0/how-do-you-handle-moultiple-event-viri
[6] https://securosis.com/blog/underastring-and-secting-siem-lm-aggregacija-normalizacija-and-enrichmen/
[7] https://www.youtube.com/watch?v=mfsrsqza1uq
[8] https://prizlibrary.github.io/docs/event-aggregator.html
[9] https://learn.microsoft.com/en-us/analysis-services/MultidiMesion-models-olap-logical-cube-objects/aggregations-and-aggregacija-designs?
[10] https://www.chess.com/forum/view/tournaments/why-delay-next-round-for-mathematic-irrelelival-games
[11] https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate-between-view-models/