Java 侦听器是一个很好的解决方案吗?它们是如何实现的?
在我的Android项目中,我有一个singleton类,它每秒从外部源检索数据。检索数据时,它应该通知一些数据显示对象有新的可用数据,以便它们可以自我更新 我认为实现这一点的最佳方法是让数据显示器实现一些监听接口,然后向数据检索器singleton注册Java 侦听器是一个很好的解决方案吗?它们是如何实现的?,java,android,architecture,listener,handler,Java,Android,Architecture,Listener,Handler,在我的Android项目中,我有一个singleton类,它每秒从外部源检索数据。检索数据时,它应该通知一些数据显示对象有新的可用数据,以便它们可以自我更新 我认为实现这一点的最佳方法是让数据显示器实现一些监听接口,然后向数据检索器singleton注册 这是一个好的解决方案吗?这个问题通常是如何解决的?是否有我应该使用的现成类/框架?您需要的是回调。如果有新数据可用,将自动通知实现回调的其他类 下面是对的很好的描述。您需要的是回调。如果有新数据可用,将自动通知实现回调的其他类 下面是一个很好的
这是一个好的解决方案吗?这个问题通常是如何解决的?是否有我应该使用的现成类/框架?您需要的是回调。如果有新数据可用,将自动通知实现回调的其他类
下面是对的很好的描述。您需要的是回调。如果有新数据可用,将自动通知实现回调的其他类
下面是一个很好的描述。Yes看起来像是观察者模式的经典用例 是看起来像是观察者模式的经典用例 一种解决方案是实现via接口和类。例如:
import java.util.Observable;
public class DataModel extends Observable
{
public void retrieveData()
{
// ...
setChanged();
notifyObservers(); // or notifyObservers(someData);
}
}
您需要像这样注册观察员:
DataModel dm = ...;
dm.addObserver(viewClass1);
dm.addObserver(viewClass2);
dm.addObserver(viewClass3);
一种解决方案是实现via接口和类。例如:
import java.util.Observable;
public class DataModel extends Observable
{
public void retrieveData()
{
// ...
setChanged();
notifyObservers(); // or notifyObservers(someData);
}
}
您需要像这样注册观察员:
DataModel dm = ...;
dm.addObserver(viewClass1);
dm.addObserver(viewClass2);
dm.addObserver(viewClass3);
您不应该正确地使用这些类,因为它们有许多缺点
Observable
是一个类,因为java中没有多重继承,所以这可能是不可能的。只需自己实现可观察对象和观察者!您不应该正确地使用这些类,因为它们有许多缺点Observable
是一个类,因为java中没有多重继承,所以这可能是不可能的。只需自己实现可观察对象和观察者!