Používanie detských kontajnerov v MVVMCross ponúka niekoľko výhod, najmä pri riadení závislostí v zložitých aplikáciách. Tu sú niektoré z kľúčových výhod:
Flexibilita v správe závislosti
Detské kontajnery vám umožňujú registrovať inštancie alebo typy na konkrétny účel bez toho, aby ovplyvnili kontajner na celú aplikáciu. To znamená, že môžete mať rôzne implementácie služieb alebo rozhraní pre rôzne časti vašej aplikácie, čo je obzvlášť užitočné v scenároch, v ktorých potrebujete izoláciu závislostí pre konkrétnu funkciu alebo reláciu [1] [4].
Izolácia závislostí
Použitím detských nádob môžete izolovať závislosti, ktoré majú obmedzenú životnosť alebo sú špecifické pre určitý kontext. Pomáha to pri udržiavaní čistej a organizovanej štruktúry závislosti, čo uľahčuje správu a ladenie vašej aplikácie [1] [4].
Dedičnosť závislostí
Každý detský kontajner zdedí všetky závislosti zaregistrované na jej materskom kontajneri. To zaisťuje, že nemusíte duplikovať registrácie spoločných služieb v rôznych častiach vašej žiadosti. Namiesto toho sa môžete zamerať na registráciu iba konkrétnych závislostí potrebných pre rozsah detskej kontajnera [1] [4].
hlboké hniezdenie
MVVMCross vám umožňuje vytvárať toľko hlboko vnorených detských kontajnerov, ako je to potrebné. Táto flexibilita je prospešná v zložitých aplikáciách, kde rôzne moduly alebo vlastnosti vyžadujú svoju vlastnú súpravu závislosti bez toho, aby zasahovali do závislosti hlavnej aplikácie [1] [4].
Zjednodušené testovanie
Používanie detských kontajnerov môže tiež zjednodušiť testovanie tým, že vám umožní ľahko zosmiešňovať alebo nahradiť závislosti na konkrétnych testovacích scenároch. Táto izolácia pomáha pri písaní viac zameraných testov jednotiek bez ovplyvnenia štruktúry závislosti na celkovej aplikácii [5].
Vylepšená modularita
Detské kontajnery podporujú modularitu tým, že vám umožnia spravovať závislosti pri jemnejšej granularite. Táto modularita je rozhodujúca pri vývoji medzi platformami, kde rôzne platformy môžu vyžadovať rôzne implementácie služieb alebo rozhraní [5] [7].
Celkovo poskytujú detské kontajnery v MVVMCross výkonný nástroj na správu závislostí v zložitých aplikáciách, zvýšenie flexibility, modularity a udržiavateľnosti.
Citácie:[1] https://www.mvvmcross.com/documentation/funmamentals/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-comparison
[4] https://www.mvvmcross.com/mvvmcross-6.0.0-release/
[5] https://dev.to/christian1006/creating-cross-platform-xamarin-Applications-using-the-mvvvvvmcross-framework-2920
[6] https://github.com/aalice072/mvvmcross/blob/master/changelog.md
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[8] https://livebook.manning.com/book/xamarin-in-action/chapter-4/
[9] https://stackoverflow.com/questions/16514691/child-containers-in-mvvvmcross-ioc