Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezelik a bestsellerek minta a hibákat az mvvmcross -ban


Hogyan kezelik a bestsellerek minta a hibákat az mvvmcross -ban


A bestsellerek mintája az MVVMCross -ban két elsődleges technikával kezeli a hibákat:

1. A BaseViewModel osztályok a megosztott hibakezeléshez: A bestseller -minta egy „BaseViewModel” osztályt használ a megosztott kód beágyazásához, beleértve a hibakezelési mechanizmusokat. Ez a megközelítés lehetővé teszi a közös hibakezelési logika központosított kezelését a különböző nézetmodellek között. Például a „GeneralAsynCload” módszert a „BaseViewModel” -ben határozzuk meg, és a különféle nézetmodellek használják az adatok aszinkron módon történő betöltésére. Ez a módszer magában foglalhatja az alkalmazásban megosztott hibakezelési logikát.

2. App-szintű hiba útválasztó: A minta alkalmazás-szintű "hiba útválasztót" is alkalmaz, hogy kezelje a hibákat a nézetmodellekről a felhasználói felületre. Ez magában foglalja egy injektált objektum, jellemzően egy „ierreporter” használatát, amelyet szingulettként inicializálnak az alkalmazás felépítése során. Minden platformspecifikus felhasználói felület projekt feliratkozik ebből a szingulettből származó eseményekre, egy „ierrorsource” interfész segítségével. Ez a beállítás lehetővé teszi a platformspecifikus hibajelző mechanizmusokat, például az UialertViews-t az iOS-on vagy az Androidon lévő pirítósokon, lehetővé téve az egyes platformok számára, hogy a hibákat a környezetében őshonos módon kezeljék.

A gyakorlatban, amikor hiba következik be egy aszinkron művelet során, például az adatok betöltése egy webszolgáltatásból, akkor a hibát elkapják és jelentik az ierreporter "használatával. Ez lehetővé teszi az alkalmazás számára, hogy felhasználóbarát hibaüzeneteket jelenítsen meg, vagy alternatív műveleteket hajtson végre, például a művelet újbóli újbóli megújítását vagy offline adatok betöltését.

Például, ha egy `kategóriallistViewModel` hibát tapasztal a kategóriák betöltése közben, akkor a„ baseViewModel ”„ GeneralAsyncload ”módszerét használhatja a hiba kezelésére. A hibát ezután a „ierreporter” segítségével jelentik, amely a platformon alapuló megfelelő felhasználói felület értesítést vált ki.

Ez a megközelítés biztosítja, hogy a hibakezelés mind központosított, mind rugalmas legyen, lehetővé téve a könnyű alkalmazkodást a különböző platformokhoz és forgatókönyvekhez az MVVMCross kereten belül.

Idézetek:
[1] http://slodge.blogspot.com/2012/05/on-pattern-for-rror-handling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-pplications-Uning-the-mvvmcross-framework/
[3] https://asktom.oracle.com/ords/f?p=100%3A11%3A%3A%3A%3A%3AP11_QUESTION_ID%3A1422998100346727312
[4] https://stackoverflow.com/questions/10411352/what-is-the-suggested-way-to-tle-exceptions-during-in--mvvmcross- Application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to-steme-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-bestpractes-handling-errors
[8] https://stackoverflow.com/questions/15697523/running-sample-projects-in-mvvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx