
Visitable 인터페이스의 accept 메소드는 Visitor 패턴의 핵심입니다. accept 메소드는 Visitor 객체를 받고, 자신을 방문하게 만드는 역할을 합니다.
이 메소드는 Visitor 객체의 visit 메소드를 호출하여, Visitor 객체가 Visitable 객체의 내부를 방문할 수 있도록 합니다.
예를 들어, 다음과 같은 구조가 있다고 가정해 보겠습니다.
#hostingforum.kr
java
public interface Visitable {
void accept(Visitor visitor);
}
public interface Visitor {
void visit(Visitable element);
}
public class ConcreteVisitable implements Visitable {
@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}
}
ConcreteVisitable 클래스는 Visitable 인터페이스를 구현하고, accept 메소드를 오버라이딩합니다. accept 메소드는 Visitor 객체를 받고, 자신을 방문하게 만듭니다.
#hostingforum.kr
java
public class ConcreteVisitor implements Visitor {
@Override
public void visit(Visitable element) {
System.out.println("방문중...");
}
}
ConcreteVisitor 클래스는 Visitor 인터페이스를 구현하고, visit 메소드를 오버라이딩합니다. visit 메소드는 Visitable 객체를 방문합니다.
#hostingforum.kr
java
public class Main {
public static void main(String[] args) {
Visitable visitable = new ConcreteVisitable();
Visitor visitor = new ConcreteVisitor();
visitable.accept(visitor);
}
}
Main 클래스에서, ConcreteVisitable 객체를 생성하고, ConcreteVisitor 객체를 생성합니다. ConcreteVisitable 객체의 accept 메소드를 호출하여, ConcreteVisitor 객체가 ConcreteVisitable 객체를 방문하게 만듭니다.
이러한 Visitor 패턴은 객체의 내부를 방문하고, 각 객체에 대한 처리를 분리할 수 있습니다.
2025-06-17 13:37