可选择的可观察模式?

可选择的可观察模式?

问题描述:

object2发生某些状态更改时,我需要在object1上执行一些任务。 我试图在android中使用可观察模式,我的意思是使用Observer和Observable类,所以object1实现了Observer和object2扩展了Observable。不幸的是,object2已经从另一个类扩展,所以我不能将它定义为Observable的扩展。可选择的可观察模式?

是否有另一种使用这种模式的替代方案?也许其他类允许我执行此行为?

谢谢。

只需添加到object2Observable型的方法,其观察员和上notifyObservers()在某些事情发生变化时被调用

这就是“支持继承”的意思。

+0

谢谢!对我而言足够了。 kostja的解决方案听起来不错,但需要额外的努力。 – forumercio

+0

这是一个“危险的”解决方案。虽然它也适用于我。但是,另外你应该提到,要将你的课程或者至少将所有相关属性声明为私有。当你的课程被另一个课程扩展时,这是保持你的可观察工作的唯一方法... – Sauer

扩展内置的Observable类实现观察者模式是一个相当糟糕的选择,因为它破坏了你的类层次结构,但你已经知道了。

更好的方法是定义自己的Observable接口并让你的类实现它。您还需要一个Listener接口,用于监听类添加

你需要在你的Observable接口被addListener(Listener listener)removeListener(Listener listener)