Considera che ho una classe Calculator
, calcola un Integer
. Nelle parti più alte del sistema, ad esempio un presentatore MVP, voglio lavorare con un osservabile ReactiveX che emette il Integer
.
Potrei fare quanto segue:
public class Calculator {
public Observable<Integer> doSomeVeryComplicatedCalculations() {
return Observable.just(0);
}
}
Mi chiedo se sia una buona pratica mantenere la classe Calculator
libera da ReactiveX e utilizzare un wrapper come questo:
public class Calculator {
public Integer doSomeVeryComplicatedCalculations() {
return 0;
}
}
public class RxCalculator {
public Observable<Integer> doSomeVeryComplicatedCalculations() {
return Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> subscriber) {
subscriber.onNext(new Calculator().doSomeVeryComplicatedCalculations());
}
});
}
}
In questo modo%% effettivo di%
a. può essere testato senza ReactiveX dove imho ReactiveX aggiunge un po 'di complessità al test
b. la classe Calculator
può essere utilizzata in progetti che non utilizzano ReactiveX.
Ci sono degli svantaggi in questo, oltre naturalmente al fatto che finirò con più codice / classi?