A gyermektartályok MVVMCross -ban történő használata számos előnyt kínál, különösen a komplex alkalmazásokon belüli függőségek kezelésében. Íme néhány kulcsfontosságú előnye:
Rugalmasság a függőség kezelésében
A gyermekkonténerek lehetővé teszik, hogy egy adott célra regisztráljon példányokat vagy típusokat anélkül, hogy az alkalmazás-szintű tartályt befolyásolná. Ez azt jelenti, hogy az alkalmazás különböző részeihez eltérő szolgáltatások vagy interfészek megvalósításai lehetnek, ami különösen hasznos a forgatókönyvekben, ahol egy adott szolgáltatás vagy munkamenet függőségének elkülönítésére van szükség [1] [4].
A függőségek elszigetelése
Gyermekkonténerek használatával elkülönítheti olyan függőségeket, amelyek korlátozott élettartama alatt állnak, vagy egy bizonyos kontextusra jellemzőek. Ez elősegíti a tiszta és szervezett függőségi struktúra fenntartását, megkönnyítve az alkalmazás kezelését és hibakeresését [1] [4].
A függőségek öröklése
Minden gyermektartály örököli az összes szülői tartályon regisztrált függőséget. Ez biztosítja, hogy ne kelljen másolnia a regisztrációkat a jelentkezés különböző részein. Ehelyett csak a gyermek -tartály hatóköréhez szükséges konkrét függőségek regisztrálására összpontosíthat [1] [4].
Mély fészkelés
Az MVVMCross lehetővé teszi, hogy annyi és mélyen beágyazott gyermektartót hozzon létre, amennyire szükség van. Ez a rugalmasság hasznos azokban a komplex alkalmazásokban, ahol a különböző modulok vagy funkciók megkövetelik a saját függőségeik halmazát anélkül, hogy beavatkoznának a fő alkalmazás függőségeibe [1] [4].
Egyszerűsített tesztelés
A gyermektartályok használata egyszerűsítheti a tesztelést is, lehetővé téve, hogy egyszerűen kigúnyolhassa vagy helyettesítse a függőségeket az adott teszt forgatókönyvekhez. Ez az elszigeteltség elősegíti a koncentráltabb egységtesztek írását anélkül, hogy befolyásolná az alkalmazás teljes függőségi struktúráját [5].
fokozott modularitás
A gyermekkonténerek elősegítik a modularitást azáltal, hogy lehetővé teszik a függőségek finomabb szemcsésségű kezelését. Ez a modularitás döntő jelentőségű a platformok közötti fejlesztésben, ahol a különböző platformok igényelhetnek szolgáltatások vagy interfészek eltérő megvalósítását [5] [7].
Összességében az MVVMCROSS gyermektartályai hatékony eszközt biztosítanak az összetett alkalmazások függőségeinek kezelésére, a rugalmasság, a modularitás és a karbantarthatóság javítására.
Idézetek:[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-ComParison
[4] https://www.mvvmcross.com/mvvmcross-6.0.0-rease/
[5] https://dev.to/christian1006/creating-cross-platform-xamarin-pplications-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-in-action/chapter-4/
[9] https://stackoverflow.com/questions/16514691/child-containers-in-mvvmcross-ioc