Použitie slabých odkazov v predplatnom udalostiach MVVMCross ponúka niekoľko výhod, primárne sústredených okolo správy pamäte a vyhýbania sa úniku pamäte. Tu sú kľúčové výhody:
1. Prevencia úniku pamäte **
Jednou z hlavných výhod používania slabých odkazov je to, že pomáhajú predchádzať úniku pamäte. Ak predplatiteľ (napr. Pohľad) v tradičných modeloch predplatného udalosti nevyhovuje udalosti (napr. V modeli zobrazenia), môže zostať v pamäti ani potom, čo už nie je potrebný. Dôvodom je skutočnosť, že zdroj udalosti udržiava silný odkaz na predplatiteľa, ktorý mu bráni zhromažďovaniu odpadu. Slabé referencie riešia tento problém tým, že umožní zberateľovi odpadu získať späť pamäť, ak sa predplatiteľa už v aplikácii viac nemení [3] [6].2. Zjednodušené riadenie predplatného **
Slabé odkazy zjednodušujú správu predplatných udalostí. V zložitých aplikáciách s mnohými zdrojmi udalostí a predplatiteľmi sa manuálne sledovanie a zrušenie podujatí môže stať ťažkopádne. Slabý vzorec udalostí tento proces automatizuje odstránením predplatiteľov, keď už nie sú potrebné, čím sa zníži zložitosť riadenia predplatných [3].3. Oddelenie pohľadov a pohľadov **
V MVVMCrossu používanie slabých odkazov pomáha udržiavať čisté oddelenie medzi modelmi a pohľadmi. Zabezpečením toho, aby modely View nemajú silné odkazy na názory, zabránite zbytočne nažive. Toto oddelenie je rozhodujúce pre udržiavanie robustnej a škálovateľnej architektúry, pretože umožňuje, aby sa výhľady zbierali, keď sa už nepoužívajú [2] [4].4. Flexibilita pri manipulácii s udalosťami **
Slabé referencie poskytujú flexibilitu pri manipulácii s udalosťami. Umožňujú používanie systémov správ, ako je napríklad doplnok MVVMCross Messenger, ktorý sa spolieha na slabé odkazy na predplatné udalosti. Táto flexibilita je prospešná v scenároch, v ktorých nie je známa identita zdroja udalostí alebo ak je uprednostňovaný prístup zameraný na viac správ [5].Je však dôležité poznamenať, že zatiaľ čo slabé referencie ponúkajú tieto výhody, predstavujú aj niektoré zložitosti a potenciálne problémy, ako napríklad problém „zombie“ uvedený v niektorých diskusiách. K tomu dôjde, keď predplatiteľ ešte nie je zhromaždený odpadky, ale stále sa s ňou stále odkazuje, čo potenciálne vedie k neočakávanému správaniu, ak sa vyvolá obsluha udalostí [1]. Napriek týmto výzvam zostávajú slabé referencie cenným nástrojom pri efektívnom riadení predplatných udalostí v aplikáciách MVVMCross.
Citácie:[1] https://ladimolnar.com/2015/09/14/the-weak-event-pattern-is-danger/
[2] https://stackoverflow.com/questions/19378470/weak-referencing-in-mvvvmcross-with-actiont
[3] https://mustafacanyucel.com/blog/blog-22.html
[4] https://gregshackles.com/weak-subscription-gotcha-in-mvvvmcross/
[5] https://www.mvvmcross.com/documentation/plugins/messenger
[6] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/events/weak-event-patterns?view=netdesktop-9.0
[7] https://stackoverflow.com/questions/310685/weak-reference-benefits
[8] https://github.com/mvvmcross/mvvmcross/issues/1480