2016-07-28 3 views
0

RxJavaを使用して自分のモデルにプロキシを作成しようとしていますが、このプロキシは他の人がモデルの変更を購読できるようにします。SubscribeしたときにPublishSubjectが発火する

class MyModelProxy { 
    private static MyModelProxy instance; 

    private MyModel model; 
    private PublishSubject<MyModel> subject; 

    private MyModelProxy() { 
     this.model = // load from cache 
     this.subject = PublishSubject.create(); 
    } 

    public static Observable<MyModel> observe() { 
     if (instance == null) { 
      instance = new MyModelProxy(); 
     } 

     return instance.subject; 
    } 

    private void modelUpdated() { 
     this.subject.onNext(this.model); 
    } 
} 

システムにおけるMyModelのインスタンスは1つだけだが、それは時間の経過とともに変更される可能性がある、と私はこれらのアップデートのために登録することができるようにしたい:

は、ここに私のプロキシの簡易版です。
このコードは、observeメソッドから返されたObservableに登録してから対象のonNextを呼び出すとうまくいきます。

私が望む振る舞いは、subscribeメソッドがこのオブザーバで呼び出されたときに、現在登録されているサブスクライバにMyModelの現在のインスタンスが送信されるということです。

私はPublishSubjectの延長について考えたが、それは最終的ですので、私は(主にPublishSubjectに何コピーし、私が必要なものを追加することで)それを自分自身のバージョンを書くことについて考えたが、その後、私はそれはですのでSubjectSubscriptionManagerは、パッケージの可視性を持っていることが判明デッドエンドも。

この機能をどのように追加することができますか?
ありがとうございます。

答えて

1

BehaviorSubjectは正確に何をしたいんれ、もあります。最新の発光し、その加入者

+0

右に将来のすべてのアイテム。ありがとう! –