我有以下资料:
>
AJava类:ClassA实现观察者
Java接口:Inter(扩展可观察,不可能)
Java类:ClassB实现可观察的内部扩展
Java类:ClassC实现可观察的内部扩展
现在ClassA的代码有点像这样。
ClassA{
Inter anyClass = new ClassB();
//or it could be
Inter anyClass = new ClassC();
//Inter.addObserver(this); //not possible since Interface cannot extend Observable
}
现在,如果一个特定的事件发生在ClassB或ClassC中,我希望ClassA知道它。我想过使用观察者/可观察的,但问题是接口不能扩展可观察的。
如果有人理解这个问题,请帮助我找到一种方法,在ClassB或ClassC中发生问题时更新ClassA。
只需使用适当的addObserver和deleteObserver方法定义自己的接口IObservable:
public interface IObservable {
void addObserver(Observer o);
void deleteObserver(Observer o);
}
您的接口可以扩展此IWatch able接口:
public interface inter extends IObservable {
...
}
在类A和B中,addObserver和deleteObserver方法将从Observable类继承,不需要定义。
public class A extends Observable implements inter {
...
}
通过条件3和条件4,我假设可观测是一个类,因为ClassB和ClassC正在扩展它。那么,你为什么不把add观察员方法放在可观察类中呢?然后,您可以将ClassB或ClassC实例分配给一个可观察的anyClass变量,并通过addObservermethod注册观察者:
ClassA implements Observer {
Observable anyClassB = new ClassB();
//or it could be
Observable anyClassC = new ClassC();
anyClassB.addObserver(this);
anyClassC.addObserver(this);
}
您不必特别使用内置的Observer/Observable java实现。您可以创建自己的接口来使用观察者模式。
使用“update”或“notify”(或类似的方法)创建一个接口观察者,该方法将用于ClassA
然后,要使用“Inter”接口作为可观察对象,请确保它实现以下功能:
- registerObserver(Observer)
- unregisterObserver(Observer)
- notifyObservers() //(or updateObservers(), which calls the update/notify method for all registered observers)
确保实现“Inter”接口的类也有一个名为observerCollection的arraylist来跟踪观察者。然后,每当ClassB或ClassC中的某些内容发生变化,并且您想告诉ClassA(观察者),您可以调用notifyObservators()让它知道某些内容发生了变化。
看一看,看看观察者设计模式会发生什么:http://en.wikipedia.org/wiki/File:Observer.svg
问题内容: 我一直在阅读Observer模式,以保持UI处于最新状态,但仍然看不到它的用途。即使在我的特定对象中通知了我的MainActivity然后运行update();方法我仍然无法使用Pet对象来获取更新值,因为该对象是在Oncreate中创建的…而我只是无法创建新对象,因为那时变量会有所不同..这是我的实施,它似乎不起作用。 观察者/ MainActivity 可观察/宠物 问题答案: 首
是否有一种设计模式可以形成一个“复合”观察者/可观察者? 我的意思是我有一个可观察的,它在某个变化时通知它的监听器。 每个监听器也是一个可观察的,并通知它自己的监听器(在某个动作上,它做了哪个动作是由第一个可观察的通知触发的)。 这种观察者/可观察的“链接”作为设计是可以的,还是有一个标准的模式?
问题内容: 我正在尝试了解观察者和可观察者。 这是我要弄清楚的一个示例: 该可制成只是因为延伸? 该观察者被添加到哪里?正在创建什么,在哪里创建? 和之间有什么区别? 我不明白这种方法。代表什么?为什么需要检查?为什么要更新另一个可观察的东西? 无论如何我为什么需要这个观察者? 问题答案: 是。是抽象类中的方法。请参阅Java文档中的Observable。 它已添加到中的列表中。 在设置之前,对的
我正在尝试开发我的第一个RxJava例子 我有一个带有文本框和三个按钮的主要活动。第一个按钮初始化单独类中的整数。第二个按钮订阅一个可观察量,该可观察量假定正在观察整数。第三个按钮将整数的值减小 1。 这是我的密码 和班级 当我尝试使用 订阅时,它只是给了我 的值(即 6),然后它给了我完成! 然后我尝试使用,认为我需要使用,只是而不是,但后来我得到了一个返回的空的,然后再次完成! 有人能帮助我从
导览 本小节主要介绍 Apache ShardingSphere 可观察性的相关功能 应用性能监控集成