gpt4 book ai didi

java - 在避免 java 中的 instanceof 运算符的同时观察多个可观察对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:02:14 24 4
gpt4 key购买 nike

如果我有一个对象,我希望能够观察到其他几个可观察对象,而不是所有的相同类型。例如,我希望 A 能够观察 B 和 C。B 和 C 完全无关,除了它们都实现了 Observable。

显而易见的解决方案是在更新方法中使用“if instanceof”,但很快就会变得困惑,因此我想知道是否还有其他方法?

最佳答案

一个干净的解决方案是在 A 中使用(匿名)内部类来充当 Observer。例如:

class A {
public A(B b, C c) {
b.addObserver(new BObserver());
c.addObserver(new CObserver());
}

private class BObserver implements Observer {
// Logic for updates on B in update method
}

private class CObserver implements Observer {
// Logic for updates on C in update method
}
}

这将允许您将 BObserver/CObserver 实例添加到任意多个 BC其实很想看它的额外好处是 A 的公共(public)接口(interface)不那么困惑,您可以轻松添加新的内部类来处理类 DEF.

关于java - 在避免 java 中的 instanceof 运算符的同时观察多个可观察对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com