私が書いているアルゴリズムにテンプレートパターンを使用しました。しかし、それを観察者のパターンと組み合わせて、プロセスについての情報を得ました。 iはオブザーバとテンプレートパターンの組み合わせ
public final void findSolution() {
// run algorithm
notifyObservers();
}
findSolution方法とこの抽象クラスは、異なるアルゴリズムの実装によって拡張されることを通知呼び出しアルゴリズムの方法において
public abstract class Test extends Observable
。 UIは単にテストへの参照を保持し、findSolution()を呼び出しますが、uiの更新メソッドは呼び出されません。
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