为什么属性改变了监听器而不是可观察的

Bis*_*128 15 java swing design-patterns

我遇到了类设计的问题,直到我发现了observable(使用观察者设计模式)并因此创建了一个使用它的小应用程序来解决我的问题.我很高兴和自豪,我用一个好的原则来解决问题.

现在我即将开始我的主要应用程序,并刚刚阅读此内容

制作JFrame和Observable对象

为什么海报建议不要使用observable而是告诉使用propertychangelistenr?使用observable有什么问题吗?

问候

Ale*_*exR 21

Observer和Listener模式非常相似.但观察者有一个弱点:所有可观察者都是一样的.您必须实现基于的逻辑instanceof并将对象转换为具体类型到Observable.update()方法中.

听众是不同的.有很多听众类型.例如鼠标侦听器,键盘等监听器每一个都有几个回调方法(即keyPressed(),keyReleased()等).因此,您永远不必实现应该在事件处理程序中回答"是我的事件"这一问题的逻辑.

我认为这就是为什么听众模特更可取的原因.


小智 7

DejanLekic和其他人可能已经意识到,这Observable不是一个interface.这就是整个问题Java.util.Observable!

用户Observable必须继承它,而不是其他任何东西.

考虑Java.RMIListener events.