1. lecke
Ez a lecke indul az Observer pattern, és nézd meg, hogyan használják RxJava. Tekintsük az alapfogalmak: Megfigyelhető és megfigyelő, és milyen típusú események használnak. Tovább elemezni egy elméleti és egy gyakorlati példát.
változat RxJava
Mielőtt elkezdenénk mechanizmusát tárgyalja RxJava, emlékezzünk a megfigyelő mintát. Ez az objektum, amely generál bizonyos események és a tárgy vagy tárgyak, amelyek aláírták és fogadni ezeket az eseményeket. Úgy gondolom, hogy a munka, amit folyamatosan használja ezt a mintát. A legegyszerűbb példa - kezelőjét a gomb megnyomása után.
A Java, vannak még eszközei ezt a mintát - class megfigyelhető és Observer interfészt. Megvalósítás Observer felület - egy tárgy, amely vár egy eseményre. Megfigyelhető - egy osztály, amely mindenki által előterjesztett az Observer-oldalak számolnak be, hogy az esemény bekövetkezett.
Ugyanez neveket használnak RxJava. És azok jelentése ugyanaz marad: Megfigyelhető generál egy eseményt, és az Observer kapja meg. De nagyot nőtt a „esemény”. A RxJava események továbbítja Megfigyelhető Observer, akkor lehet tekinteni, mint egy adatfolyamot. És az események ezen a folyam három típusa van:
1) Next - egy másik adat
2) Error - Hiba történt
3) Kész - az áramlás, majd az adatokat nem több.
Példaként nézzük meg a repülés keresést. Tegyük fel, hogy van egy módszer, amely képes futtatni a légitársaság honlapján, keressen rá a megadott feltételeknek megfelelő repülési és légijáratok került vissza hozzánk. Megkérdeztük tőle, egy cél, egy kiindulópont, dátum - és ez elkezd dolgozni.
Amint feldolgozza egymás után oldalakat generál Következő esemény, amely közvetíti az eredményt. Ie Minden megtalált repülés - új Next esemény.
Ha a módszer, hogy volt néhány komoly hibát és a folyamatos üzemeltetés nem lehetséges, az eljárás küldi a hiba esetén.
Ha a módszer sikeresen kezelték az összes ismert helyszínek és befejezte a munkát, ő küld nekünk a kitöltött esemény.
Mi történt ebben az egész rendszerben megfigyelhető és megfigyelő? keresési módszert, ha hívjon vissza megfigyelhető objektum. És mi létre Observer, melyben leírjuk a kód feldolgozására kapott eseményeket és előfizet erre megfigyelhető. Mivel a működési mód, a megfigyelhető generál eseményt, hogy megkapja a megállapított Observer:
- Következő, ha ez az esemény a következő járat, majd elrepül, és például, add hozzá a listához adapter. Így repül egymás után jelennek meg a listában, mert lehet.
- ha ez Befejezett esemény, akkor kapcsolja ki a Folyamatsáv, és értesíti a felhasználót, hogy a keresés befejeződött
- ha ez hiba esetén a felhasználó értesítést kap, hogy a keresési megszakadt egy hiba
Ebben a példában leírtam három típusú eseményeket, hogy tegyék világossá, miért van szükség. De, ha nem feltétlenül felel meg az összes ilyen típusú egyes adatfolyamot. Például megfigyelhető, amely azt mondja, a gombnyomásra. Ebben az esetben csak akkor tudunk fogadni Következő esemény egy időben. Befejezett esemény, akkor nem jön, mert a felhasználó tetszőleges számú alkalommal, hogy nyomja meg a gombot, és nem utolsó gomb nem lesz ott. Nos, a hiba itt nem valószínű, hogy kap.
Remélhetőleg, miután ez a bevezetés és példák jelentek meg megértése szerepét tárgyak Megfigyelhető és az Observer. A legnehezebb dolog az első - ez csak megkülönböztetni őket egymástól)
Nézzünk egy egyszerű példát a megfigyelhető.
Készítsen megfigyelhető így néz ki:
megfigyelhető
Hozzon létre egy befogadó, azaz Observer:
megfigyelő
onNext (String s) - ez a módszer az adatok jönnek
onError (Eldobható e) - hogy fogják hívni, ha bármilyen hibát, és kap a bemenetén a hiba adatok
onCompleted () - észrevenni, hogy minden adatot átadott
Mindkét objektumokat hoz létre, szükség van, hogy aláírja a megfigyelhető Observer módszer feliratkozás:
Közvetlenül azután előfizetés Megfigyelhető Observer hogy az összes adatot (a onNext módszer) és a jele, hogy az átvitel befejeződött (OnCompleted módszer).
Ez az egyszerű példa célja, hogy bemutassák a közötti kölcsönhatás megfigyelhető és megfigyelő. Akkor használjuk Megfigyelhető, amely képes az adatátvitelre a mellékelt tömb neki. De ez csak az egyik típusú megfigyelhető. Ezután megtanulják, hogyan kell létrehozni a különböző megfigyelhető.
mi a következő lépés
Amikor elkezdtem tanulmányozni RxJava, van, figyelembe véve az ilyen példák felmerülő kérdésekre, mint:
- Mi pont Megfigyelhető kezdett generálni események: a teremtés után, vagy ha előfizetett az Observer-eh?
- Mi fog történni, ha a jel több Observer-ek: mindegyik kap az adatokat, vagy azok, akik aláírták később, nem kap semmit?
- Hogyan hozzunk létre Megfigyelhető, hogy elküldi az eredményeket kódomat?
- Hogyan lehet munkát a megfigyelhető végre egy flow (a téma értelemben), és az eredmények jöttek a többi?
A további vizsgálat és a kísérletezés, ezek a kérdések sikeresen megoldódott, és az összes, hogy én kiterjed a későbbi tanulsága a kurzus.
Ezen felül, nézzük meg, hogy milyen lehetőségek dolgozó adatfolyamok biztosít RxJava. Például, akkor megteszi az adatfolyamot és végre különböző átalakításokat rajta: az adatok szűrése vagy átalakítani az adatokat az egyik típusról a másikra. Akkor össze az adatokat a különböző adatfolyamok egymást, párhuzamosan, vagy párban.
Is kapható RxJava kiváló eszköz streaming (ez már nem találhatóak adatfolyamok és patakok, hogy a téma). Megadhat egy patak, hogy adatokat a megfigyelhető, a másik szál, hogy végezzen az átalakítási műveletek a következő adatokat és a harmadik folyam, amely az adatokat majd jön az Observer.
Általában a téma nagyon érdekes és hasznos, és ez a tanfolyam segít megérteni.