Injekcia konštruktora do MVVMCross ponúka niekoľko kľúčových výhod, ktoré zvyšujú vývoj a údržbu aplikácií viacerých platforiem. Tu sú podrobné výhody použitia injekcie konštruktora v tomto kontexte:
1. Oddelenie a testovateľnosť **
Injekcia konštruktora umožňuje jasné oddelenie obáv medzi rôznymi zložkami aplikácie. Injekciou závislostí prostredníctvom konštruktora môžete ľahko vymeniť implementácie na účely testovania. Preto je jednoduchšie písať testy jednotiek poskytovaním falošných implementácií služieb, čo je rozhodujúce pre udržiavanie robustných a spoľahlivých kódových bodov [2] [4].2. Implementácie špecifické pre platformu **
MVVMCross umožňuje použitie implementácií špecifických pre platformu prostredníctvom injekcie konštruktora. Napríklad, ak máte službu, ktorá interaguje s fotoaparátom, môžete poskytnúť rôzne implementácie pre Android a iOS. Táto flexibilita je obzvlášť užitočná pri vývoji medzi platformami, kde rôzne platformy môžu vyžadovať jedinečné zaobchádzanie s určitými funkciami [3] [6].3. Rozlíšenie závislosti **
MVVMCross používa výkonný kontajner IOC (`MVX.iocprovider`), ktorý automaticky rieši závislosti počas konštrukcie objektov. To znamená, že keď je spoločnosť ViewModel alebo Service inštantovaná, MVVMCross automaticky poskytne požadované závislosti, čím sa zníži potreba manuálneho inštancie a zvýši sa stručnejšie a udržiavateľné [1] [2].4. Flexibilita v správe závislosti **
Injekcia konštruktora umožňuje flexibilne zvládať závislosti. Služby môžete zaregistrovať ako singletons, dynamické inštancie alebo používať ďalšie stratégie riadenia životného cyklu. Táto flexibilita je prospešná pri riešení rôznych typov závislostí, ktoré si môžu vyžadovať rôzne prístupy riadenia [2] [3].5. Zjednodušená štruktúra kódu **
Použitím injekcie konštruktora môžete svoj kód organizovať a sústrediť sa na jeho základnú logiku. Mechanizmus vstrekovania rieši inštanciu a poskytovanie závislostí, ktoré zjednodušujú štruktúru vašich tried a uľahčujú ich pochopenie a údržbu [4] [7].6. Vylepšená opakovanosť **
Injekcia konštruktora podporuje opätovnú použiteľnosť tým, že umožňuje ľahko opätovné použitie komponentov v rôznych častiach aplikácie. Pretože závislosti sú skôr injektované ako tvrdé kódované, komponenty sa stávajú modulárnejšími a prispôsobiteľnejšími na rôzne kontexty [5] [7].Stručne povedané, injekcia konštruktora do MVVMCross zvyšuje vývojový proces podporovaním oddelenia, testovateľnosti, flexibility a opakovane použiteľnosť, čím sa stane výkonným nástrojom na budovanie robustných a udržiavateľných aplikácií viacerých platforiem.
Citácie:[1] https://www.mvvmcross.com/documentation/funmamentals/inversion-of-control-ioc
[2] https://www.mvvmcross.com/documentation/funmamentals/dependency-injekcia
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-mith-xamarin-and-mcross
[4] https://www.mvvmcross.com/documentation/funmamentals/viewmodel-lifecycle
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[6] https://stackoverflow.com/questions/45618740/how-to-use-ioc-constructor-incon--mvvvvvvvvvvvvvmcross-platform-exceptions-m
Https://yanxiaodi.gitbook.o/xamarin-mvvmcross-wandbook/using-mvvmcross-to-create-your-first-xamarin-App/creating-the-core-project/adding-anp-class
[8] https://stackoverflow.com/questions/40737720/constructor-incance-field-inccinácia
[9] https://github.com/mvvmcross/mvvmcross/issues/3586