필자가 쓰고있는 알고리즘에 템플릿 패턴을 사용했다. 그러나 관찰자 패턴과 결합하여 프로세스에 대한 정보를 얻었습니다. 난 호출 알고리즘 방법에서 템플릿 패턴과 결합 된 옵저버
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 니츠 : 좋은 지적입니다. 나는 그것을 놓쳤다. – Jay