기본적으로 모든 클래스는 Element
이라는 기본 클래스에서 파생되지만 특정 순간에는 구조에 파생 요소가 포함될 수 있습니다.방문자 인터페이스에서 파생 된 모든 유형을 지정하지 않고 방문자 패턴을 구현합니까?
방문자는 여러 가지 스타일로 요소를 인쇄하고 인터페이스 ElementVisitor
을 구현합니다.
방문자 인터페이스에서 모든 파생 유형을 지정하지 않고 방문자 패턴을 구현할 수 있습니까? 대안 일 것입니다 무슨
그렇지 않은 경우는, Element
및 ElementVisitor
우리가 언제하지만 언제 편집 할 확장 할 수 있어야하는 프레임 워크 수준의 구성 요소는 주어진. 그래서 같은
Element
수 언제 accept
List<ElementVisitor>
:
class Element
{
public void accept(List<ElementVisitor> actions) {
foreach(ElementVisitor action : actions)
{
action.visit(this);
}
}
}
참고 : 프레임 워크가 생산 단계에 아직도있다, 그래서 방문자 패턴이 허용되지 않을 경우 설계가 계속 변경 될 수 있습니다.
instanceof
이 유일한 방법은 무엇입니까? 내가 볼 수있는 다른 대안은 무엇입니까?
"여러 다른 스타일로 요소 인쇄"는 무엇을 의미합니까? – stan0
기본적으로 요소에는 데이터가 포함되어 있으며 각 방문자는 관련 데이터 만 인쇄합니다. – Chad