我有一个名为Passenger的子类,它是从Person类扩展而来的。我想让Passenger类成为一个可观察的对象。所以我这样做,
class Person extends Observable{
}
class Passenger extends Person{
public void move(){
setChanged();
notifyObservers();
}
}
class Manager implements Observer{
@Override
public void update(Observable o, Object arg) {
}
}
当我不需要为该类提供可观察的功能时,将Person类设为Observable是不好的做法?如果是这样,我怎么能改变这个?
答案 0 :(得分:4)
我认为java中的 Obervable 类是一个相当糟糕的课程。在我看来,它真的想要在界面中。
然而,不是让人从Observable扩展,你可以使用乘客级别的组合。
在您的Passenger课程中,您可以使用以下代码:
private Observable observable = new Observable();
public void addObserver(Observer o) {
observable.addObserver(o);
}
public void notifyObservers() {
observable.notifyObservers();
}
这是与可观察对象的组合关系。它应该工作得很好。
此问题中的更多信息:
答案 1 :(得分:0)
您也可以将Person类作为接口,因此Passenger类可以扩展Observable并实现Person。只是一个想法。