Skip to content

Instantly share code, notes, and snippets.

@feresr
Last active February 3, 2017 05:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save feresr/dfaf4b98ed1afdc3e6fe0dd21a9e397e to your computer and use it in GitHub Desktop.
Save feresr/dfaf4b98ed1afdc3e6fe0dd21a9e397e to your computer and use it in GitHub Desktop.
RxRelays are awesome 1
public abstract class RxStore<Input, Output> {
private BehaviorRelay<Output> relay = BehaviorRelay.create(defaultValue());
public final Subscription register(Subscriber<Output> subscriber) {
return relay.subscribe(subscriber);
}
public final void execute(Input event) {
buildObservable(event).subscribe(relay);
}
protected Output defaultValue() { return null; }
protected abstract Observable<Output> buildObservable(Input event);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment