1
我使用模板模式编写了一个算法。但是我将它与观察者模式结合起来,以获得有关过程的信息。观察者与模板模式相结合
public abstract class Test extends Observable
在用于我算法调用的方法的通知
public final void findSolution() {
// run algorithm
notifyObservers();
}
此抽象类与findSolution方法将通过不同的算法的实现来扩展。 UI只保留对Test的引用并调用findSolution(),但ui中的update方法永远不会被调用现在有人做了什么错?
public class CreateViewResults implements Observer {
private Test algorithm;
public CreateViewResults() {
algorithm = new OneTestImpl();
algorithm.addObserver(this);
algorithm.findSolution();
}
@Override
public update(Observable ob, Object o) {
System.out.println("Update");
}
}
您必须向我们展示OneTestImpl的代码。我的第一个猜测是OneTestImpl.findSolution既不会调用super也不会调用notifyObservers。 – Jay
@Jay:OneTestImpl.findSolution从Test继承而来,不能被覆盖,因为它是最终的。 –
@JB Nizet:好点。我错过了。 – Jay