Який сенс використовувати observable stack overflow російською

Справа в тому, що Observer і AsyncTask виконують абсолютно різні завдання і ніякої мови про їх взаємозамінності не йде, хоча б у них обох і є якісь методи для дій на початку, в процесі виконання і при завершенні операції.

AsyncTask - це клас-обгортка з фреймворка Android, призначений для виконання паралельних операцій в іншому потоці, з можливістю взаємодії з основним потоком.

Observer (спостерігач) - це поведінковий патерн проектування, призначений для повідомлення про зміну стану в спостережуваному об'єкті (наприклад змінилися дані і їх потрібно обробити). При цьому ініціатором сигналу є сам спостережуваний об'єкт, а класи, підписані на повідомлення від спостережуваного об'єкта отримають цей сигнал.

Абстрактно, на живих прикладах, AsyncTask можна порівняти з многополосной дорогою - у нас багато вантажу і ми можемо відправляти вантажівки одночасно по кількох смугах, щоб швидше доставити весь вантаж.

Observer з сигналізацією в машині. Сама сигналізація це Observer машини, ви - Observable, передплатник на події сигналки через брелок від неї. Коли стан машини змінюється (хто намагається її прибрати собі) ви отримуєте повідомлення про цю сумну подію і можете діяти, рятуючи своє добро.

Broadcast - з радіостанцією. Ні хто інший, а сам президент нашої Батьківщини, придумав дуже важливий указ, його зачитали по радіо і тоді зацікавлені особи тут же змогли виконувати вказівки, так як вони весь час слухають це радіо.

Як бачите, всі вони мають свої особливі функції і якимось чином не можуть заміняти один одного, особливо дорога і сигналізація :)

Схожі статті