我需要在我的项目中实现Observers
的各种update
方法,以便使用特定类型重载Object参数。因此,不是使用Java中的接口内部重载
public void update (Observable o, Object arg0){
if(arg0 instanceof Class1) ....
else if (arg0 instanceof Class2) ....
或开关(它是工作的一个非常“C”的方式),我想使用interface
该延伸Observer
和重载update
方法,像这样
public interface ExtendedObserver extends Observer{
public void update (Observable obj, Class1 cls);
public void update (Observable obj, Class2 cls);
}
的
然后将其实施到我的观察员。每个不同的观察者都将使用特定的更新方法。
我想知道这是否是工作的正确方式,因为
- 我不认为超载的接口内的方法是正确的
- 我还是要添加未使用更新方法在实现接口的每个类中。
如果您使用的是Java 8,则可以为所有方法提供空的默认实现,因此您不必在实现者中重新定义所有这些方法。顺便说一句,很高兴知道你想要在这些if-instanceof分支中做什么。可能最好将此功能移到Class1和Class2上? –