Nõrkade viidete kasutamine MVVMCROSS -i sündmuste tellimustes pakub mitmeid eeliseid, mille keskmes on peamiselt mäluhaldus ja vältides mälulekkeid. Siin on peamised eelised:
1. mälulekke ennetamine **
Nõrgade viidete kasutamise üks peamisi eeliseid on see, et need aitavad vältida mälulekkeid. Traditsiooniliste sündmuste tellimismudelites, kui abonent (nt vaade) ei loobu sündmusest korralikult (nt vaatemudelis), võib see mällu jääda ka pärast seda, kui seda enam pole vaja. Selle põhjuseks on asjaolu, et sündmuse allikas säilitab abonendile tugeva viite, takistades selle prügi kogumist. Nõrgad viited lahendavad selle probleemi, võimaldades prügikogujal mälu tagasi nõuda, kui abonendile ei viidata enam mujal rakenduses [3] [6].2. lihtsustatud tellimuste haldus **
Nõrgad viited lihtsustavad sündmuste tellimuste haldamist. Paljude sündmuste allikate ja tellijatega keerukates rakendustes võib sündmuste käsitsi jälgimine ja tellimuste tühistamine muutuda kohmakaks. Nõrk sündmuse muster automatiseerib seda protsessi, eemaldades tellijad, kui neid enam pole vaja, vähendades tellimuste haldamise keerukust [3].3. vaatemodellide ja vaadete lahtiütlemine **
MVVMcrossis aitab nõrkade viidete kasutamine säilitada vaatemudelite ja vaadete vahel puhast eraldumist. Veendudes, et vaatemudelid ei anna tugevaid viiteid vaadetele, takistate vaadete asjatult elus hoidmist. See lahutamine on tugeva ja skaleeritava arhitektuuri säilitamiseks ülioluline, kuna see võimaldab vaateid koguda, kui neid enam ei kasutata [2] [4].4. paindlikkus sündmuste käitlemisel **
Nõrgad viited pakuvad sündmuste käitlemise stsenaariumide paindlikkust. Need võimaldavad kasutada sõnumisüsteeme, näiteks MVVMCROSS Messengeri pistikprogrammi, mis tugineb sündmuste tellimiseks nõrkadele viidetele. See paindlikkus on kasulik stsenaariumides, kus sündmuse allika identiteet pole teada või kui eelistatakse sõnumile orienteeritud lähenemist [5].Siiski on oluline märkida, et kuigi nõrgad viited pakuvad neid eeliseid, tutvustavad need ka mõningaid keerukusi ja potentsiaalseid probleeme, näiteks mõnes arutelus nimetatud "zombie" probleem. See juhtub siis, kui abonenti ei koguta veel prügi, kuid sellele viidatakse endiselt nõrgalt, põhjustades potentsiaalselt ootamatu käitumise, kui selle sündmuste käitlejale tuginetakse [1]. Hoolimata nendest väljakutsetest on nõrgad viited MVVMcrossi rakendustes sündmuste tellimuste tõhusa juhtimisel väärtuslikuks tööriistaks.
Tsitaadid:[1] https://ladimolnar.com/2015/09/14/the-weak-event-pattern-is-dangerous/
[2] https://stackoverflow.com/questions/19378470/weak-referencing-in-mvvmcross-with-actiont
[3] https://mustafacanyucel.com/blog/blog-22.html
[4] https://gregshackles.com/weak-subscription-gotcha-in-mvvmcross/
[5] https://www.mvvmcross.com/documentation/plugins/messenger
]
[7] https://stackoverflow.com/questions/310685/weak-reference-benefits
[8] https://github.com/mvvmcross/mvvmcross/issues/1480