所以我有一些类只是观察者,另一个类既是观察者又是可观察的,第三个类只是可观察的。
我希望能够获取两者兼而有之的类,并通知一些观察者仅可观察的类已更改。因此,Observer 和 Observable 类实际上不会改变自身,而是在只有 Observable 发生变化时通知观察者(从而让观察者运行其更新方法)。
这可以做吗?是否必须更改 Observable 才能通知观察者?我该怎么办呢?
编辑:我发现我的设计存在问题:
当update方法接受一个Observable o时,我不确定这个o是ObserverObservable还是ObservableOnly的实例,所以问题就出现了。我必须为两者设定条件,并创建一个 ObservableOnly 实例或一个从 Observable 获取信息的类/方法,仅作为 Observer 中的一个字段。
最佳答案
如前所述,这绝对是可能的。
我花了一些时间编写了一些简单的代码,其中我对观察者和可观察者都使用了 java 接口(interface)。 (我想值得一提的是,我使用的是观察者的轮询版本,而不是推送。)
该代码并不完美,但希望它向您展示它的样子。
此外,这是我和其他许多人推荐的一本书: http://shop.oreilly.com/product/9780596007126.do
关于Java:可以通过观察者层次结构向观察者通知更改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067332/