„MVVMCross“ vaikų konteinerių naudojimas siūlo keletą privalumų, ypač valdant priklausomybes, susijusias su sudėtingomis programomis. Čia yra keletas pagrindinių pranašumų:
priklausomybės valdymo lankstumas
Vaikų konteineriai leidžia užregistruoti egzempliorius ar tipus konkrečiam tikslui, nepažeidžiant visos programos konteinerio. Tai reiškia, kad galite turėti skirtingą paslaugų ar sąsajų diegimą skirtingoms jūsų programos dalims, o tai ypač naudinga scenarijuose, kuriuose reikia atskirti priklausomybes konkrečiai funkcijai ar sesijai [1] [4].
priklausomybių izoliacija
Naudodamiesi vaiko konteineriais, galite atskirti priklausomybes, kurių eksploatavimo laikas yra ribotas arba yra būdingas tam tikram kontekstui. Tai padeda išlaikyti švarią ir organizuotą priklausomybės struktūrą, todėl yra lengviau valdyti ir derinti jūsų programą [1] [4].
priklausomybių paveldėjimas
Kiekvienas vaiko konteineris paveldi visas priklausomybes, užregistruotas iš jo pagrindinio konteinerio. Tai užtikrina, kad jums nereikės kopijuoti bendrų paslaugų registracijų įvairiose jūsų programos dalyse. Vietoj to, galite sutelkti dėmesį į tik specifinių priklausomybių, reikalingų vaiko konteinerio apimčiai, registruoti [1] [4].
Deep lizdas
„MVVMCross“ leidžia jums sukurti tiek, kiek giliai įdėtus vaikų konteinerius, kiek reikia. Šis lankstumas yra naudingas sudėtingose programose, kai skirtingiems moduliams ar funkcijoms reikalingas jų priklausomybių rinkinys, nesikišant į pagrindinės programos priklausomybes [1] [4].
supaprastintas testavimas
Vaikų konteinerių naudojimas taip pat gali supaprastinti testavimą, leisdami jums lengvai tyčiojamės arba pakeiskite priklausomybes konkrečioms bandymo scenarijams. Ši izoliacija padeda rašant labiau sutelktus vienetų testus, nepadarant įtakos bendros programos priklausomybės struktūrai [5].
Patobulintas moduliškumas
Vaikų konteineriai skatina moduliškumą, leisdami jums valdyti priklausomybes, esant smulkesniam detalumui. Šis moduliškumas yra labai svarbus kuriant įvairiapusę platformą, kai skirtingoms platformoms gali prireikti skirtingų paslaugų ar sąsajų diegimo [5] [7].
Apskritai, „MVVMCross“ vaikų konteineriai yra galingas įrankis, skirtas valdyti priklausomybes sudėtingose programose, padidinant lankstumą, moduliškumą ir palaikymą.
Citatos:[1] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[2] https://canbilgin.wordpress.com/2017/02/26/develoving-universalcross-platform-apps-with-mvvm-vii/
[3] https://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparion
[4] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[5] https://dev.to/christian1006/creating-cross-platform-xamarin-application-sing-the-mvvmcross-framework-2920
[6] https://github.com/aalice072/mvvmcross/blob/master/changelog.md
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://liveBook.manning.com/book/xamarin-in-action/chapter-4/
[9] https://stackoverflow.com/questions/16514691/child-containers-in-mvvmcross-ioc