我开始学习Rx Java并有一个简单的问题
我有一个Foo.class
班。在类内部,我有一个变量Object mObject
,它带有mObject
的getter和setter方法。在我的另一堂课Bar.class
中,我将对mObject
的值进行更改做出反应。如何用Rx Java实现它?
我尝试了这种解决方案,但是我不明白那里的代码 Detecting value change using Rxjava
答案 0 :(得分:0)
您可以选择Publish Subject
。这样,您还可以观察单个Int变量。
转到此处获取文档Publish Subject
答案 1 :(得分:0)
Object类的实现包装器,它将控制对该对象的访问,如果发生更改,它将事件推送给Subject。
public class ObjectChanges extends Object or Implements its interface {
private Object mObject;
private Subject<Object> subject;
<constructor that takes mObject>
public void setField(String value) {
mObject.setField(value);
subject.onNext(mObject)
}
public Observable<Object> subscribe() {
return (Observable<Object>) this.subject;
}
...
}
您也可以使用装饰器模式。我建议您不要添加此逻辑对象,因为那样可能会导致很多体系结构问题。例如,您可能想要实现另一个包装器,该包装器将验证该对象的字段,您是否也将在Object中执行它?另一方面,您只需实现该包装,并在需要的地方使用它即可:
Object obj = new ValidationWrapper(new RxWrapper(new Object()));