Het gebruik van onderliggende containers in MVVMCross biedt verschillende voordelen, met name bij het beheren van afhankelijkheden binnen complexe toepassingen. Hier zijn enkele van de belangrijkste voordelen:
Flexibiliteit in afhankelijkheidsbeheer
Met kindcontainers kunt u instanties of typen registreren voor een specifiek doel zonder de app-brede container te beïnvloeden. Dit betekent dat u verschillende implementaties van services of interfaces voor verschillende delen van uw toepassing kunt hebben, wat met name handig is in scenario's waarbij u afhankelijkheden moet isoleren voor een specifieke functie of sessie [1] [4].
Isolatie van afhankelijkheden
Door onderliggende containers te gebruiken, kunt u afhankelijkheden die een beperkte levensduur hebben, isoleren of specifiek zijn voor een bepaalde context. Dit helpt bij het handhaven van een schone en georganiseerde afhankelijkheidsstructuur, waardoor het gemakkelijker is om uw toepassing te beheren en te debuggen [1] [4].
Overerving van afhankelijkheden
Elke onderliggende container erft alle afhankelijkheden die op zijn bovenliggende container zijn geregistreerd. Dit zorgt ervoor dat u geen registraties hoeft te dupliceren voor gemeenschappelijke services in verschillende delen van uw toepassing. In plaats daarvan kunt u zich concentreren op het registreren van alleen de specifieke afhankelijkheden die nodig zijn voor het bereik van de onderliggende container [1] [4].
Deep Nesting
Met MVVMCross kunt u zoveel en zo diep geneste kindercontainers maken als dat nodig is. Deze flexibiliteit is gunstig in complexe toepassingen waar verschillende modules of functies hun eigen set afhankelijkheden vereisen zonder de afhankelijkheden van de hoofdtoepassingen te verstoren [1] [4].
vereenvoudigde testen
Het gebruik van onderliggende containers kan ook het testen vereenvoudigen door u gemakkelijk afhankelijkheden te bespotten of te vervangen voor specifieke testscenario's. Deze isolatie helpt bij het schrijven van meer gerichte eenheidstests zonder de afhankelijkheidsstructuur van de algehele toepassing te beïnvloeden [5].
Verbeterde modulariteit
Kindcontainers bevorderen modulariteit door u in staat te stellen afhankelijkheden te beheren bij een fijnere granulariteit. Deze modulariteit is cruciaal in platformonafhankelijke ontwikkeling, waarbij verschillende platforms mogelijk verschillende implementaties van services of interfaces vereisen [5] [7].
Over het algemeen bieden onderliggende containers in MVVMCross een krachtig hulpmiddel voor het beheren van afhankelijkheden in complexe toepassingen, het verbeteren van flexibiliteit, modulariteit en onderhoudbaarheid.
Citaten:[1] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[2] https://canbilgin.wordpress.com/2017/02/26/developing-universalcross-platform-apps-with-mvvm-vii/
[3] https://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparisononison
[4] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[5] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-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-inaction/chapter-4/
[9] https://stackoverflow.com/questions/16514691/child-containers-in-mvvmcross-ioc