一位采访者问我:
什么是Observer和Observable我们何时应该使用它们?
我不知道这些术语的,所以,当我回到家,开始对谷歌搜索Observer和Observable,我发现来自不同资源的一些要点:
1)
Observable是一个类,Observer是一个接口.2)
Observable该类维护一个Observers 列表.3)当一个
Observable对象被更新时,它会调用update()每个Observers 的方法来通知它,它被改变了.
我找到了这个例子:
import java.util.Observable;
import java.util.Observer;
class MessageBoard extends Observable
{
public void changeMessage(String message)
{
setChanged();
notifyObservers(message);
}
}
class Student implements Observer
{
@Override
public void update(Observable o, Object arg)
{
System.out.println("Message board changed: " + arg);
}
}
public class MessageBoardTest
{
public static void main(String[] args)
{ …Run Code Online (Sandbox Code Playgroud) 我遇到了类设计的问题,直到我发现了observable(使用观察者设计模式)并因此创建了一个使用它的小应用程序来解决我的问题.我很高兴和自豪,我用一个好的原则来解决问题.
现在我即将开始我的主要应用程序,并刚刚阅读此内容
为什么海报建议不要使用observable而是告诉使用propertychangelistenr?使用observable有什么问题吗?
问候
随着Java 9的到来,Observable类和Observer接口现已弃用.
[Observable]和Observer接口已被弃用.Observer和Observable支持的事件模型非常有限,Observable提供的通知顺序未指定,状态更改不与通知一一对应.对于更丰富的事件模型,请考虑使用java.beans包.
它建议使用该java.beans包,但是如何使用它来创建一个模拟Observer模式的事件处理程序呢?