Observable 被观察者
public abstract class MObservable {
public static MObservable create(MObservableOnSubscribe source) {
return new MObservableCreate(source);
}
public final MObservable subscribe(MObserver observer) {
observer.onSubscribe();
subscribeActual(observer);
return this;
}
protected abstract void subscribeActual(MObserver observer);
}
ObservableCreate 被观察者实现
public class MObservableCreate extends MObservable {
private MObservableOnSubscribe source;
public MObservableCreate(MObservableOnSubscribe source) {
this.source = source;
}
@Override
protected void subscribeActual(MObserver observer) {
try {
this.source.subscribe(observer);
} catch (Exception e) {
e.printStackTrace();
}
}
}
ObservableOnSubscribe 观察订阅
public interface MObservableOnSubscribe {
void subscribe(MObserver observer) throws Exception;
}
Observer 观察者
public interface MObserver {
void onSubscribe();
void onNext();
void onError();
void onComplete();
}
下面是main方法
public static void main(String[] args) {
MObservable observable = MObservable.create(new MObservableOnSubscribe() {
@Override
public void subscribe(MObserver observer) throws Exception {
observer.onNext();
}
});
observable.subscribe(new MObserver() {
@Override
public void onSubscribe() {
}
@Override
public void onNext() {
System.out.println("ertyuiop");
}
@Override
public void onError() {
}
@Override
public void onComplete() {
}
});
}