Java内置观察者模式

时间:2013-09-27 20:16:06

标签: java design-patterns observable

关于观察者内置设计模式:

 java.util.Observable;
 java.util.Observer;

观察结果是否必须可序列化?

Observer有一个合同来实现一个update方法来回调它的观察结果。回调看起来像这样:

@Override
public void update(Observable observable, final Object observation) {
    // do some stuff with the notification
}

我的问题是:最后一个名为observe的参数,是否必须是可序列化的,还是可以通知任何类型的对象?

2 个答案:

答案 0 :(得分:4)

如果要求对象可序列化,那么它将在接口定义中声明为可序列化。如:

public void update(Observable observable, final Serializable observation) 

但事实并非如此,因此没有强制要求。

答案 1 :(得分:2)

不,observation参数不必是可序列化的。否则参数类型应为Serializable