
ParentIterator::accept 메서드를 사용하여 상위 클래스의 accept 메서드를 호출할 때, Visitor 패턴의 visit 메서드와 유사하게 인자를 넘겨야 합니다.
#hostingforum.kr
java
public class ParentIterator {
public void accept(Visitor visitor) {
// 상위 클래스의 accept 메서드를 호출
}
}
public class ChildIterator extends ParentIterator {
@Override
public void accept(Visitor visitor) {
// 자식 클래스의 accept 메서드를 호출
}
}
public interface Visitor {
void visit(ParentIterator parent);
void visit(ChildIterator child);
}
ParentIterator::accept 메서드를 호출할 때, Visitor 인스턴스를 인자로 넘겨야 합니다. 이 인스턴스에는 visit 메서드가 정의되어 있어야 하며, ParentIterator와 ChildIterator를 인자로 받습니다.
#hostingforum.kr
java
public class Main {
public static void main(String[] args) {
ParentIterator parent = new ChildIterator();
Visitor visitor = new ConcreteVisitor();
parent.accept(visitor);
}
}
public class ConcreteVisitor implements Visitor {
@Override
public void visit(ParentIterator parent) {
// ParentIterator를 방문할 때 호출
}
@Override
public void visit(ChildIterator child) {
// ChildIterator를 방문할 때 호출
}
}
이러한 방식으로, ParentIterator::accept 메서드를 사용하여 상위 클래스의 accept 메서드를 호출할 때, Visitor 인스턴스를 인자로 넘겨야 합니다.
2025-03-25 13:44