网络原因
因为借口定义中会将Observable实现类的引用和推得具体消息都传过去,所以可以推可以拉,但是如果用notifyObservers()的话,没有具体消息了,就只能拿引用去拉了。
ConcreteObserver没有实现java.util.Observer吧
不管你有没有传参数,,对象都会被传过去,下面使他的遍历通知代码:
for (int i = arrLocal.length-1; i>=0; i--)
((Observer)arrLocal[i]).update(this, arg);
可见,当你没有传参数时,它的arg = null
所以,怎么用,看你了!
我觉得,观察者在创建完成之后,就可以注册了
我看了下Observable类的源码,发现notifyObservers()方法其实在里面是调用了notifyObservers(Object arg)方法,只是这个参数是null,所以从这个角度来讲推方法也属于拉方法,所以即使目标类那里用了推方法,观察者的update方法也能够拿到目标类的引用。