我需要在我的項目中實現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上? –