메시지 유형의 기본 클래스를 매개 변수로받는 "통지"메소드가있는 프로세스가 있습니다. 파생 된 메시지 유형을 기반으로 다른 처리를하고 싶습니다. 이것은 "프로세스"또는 메시지 유형과 비슷한 메소드를 추가하고 다형성을 사용하여 호출해야한다는 것을 의미합니까? 특정 메시지 유형마다 "알림"을 추가하는 것이 더 좋습니까?메시지 유형에 따라 다른 처리 방법은 무엇입니까?
세부 정보 : 언어는 C++입니다. 여기서는 좋은 생각이 될 것이라고 생각했기 때문에 다양한 메시지 유형에 대해 알림을받는 방법이 하나만 필요했습니다. 컨트롤러는 순수한 vitual notify (MsgBaseClass) 메서드를 지정하는 listener 클래스에서 상속받습니다. 나는 새로운 메시지 유형마다 알림을 추가 할 필요가 없기 때문에 여전히 그 생각을 좋아합니다. 그러나 컨트롤러 코드 자체에서 동적 캐스트와 같은 메시지 유형을 구분하거나 메시지 유형을 메시지에 추가하는 방법은 없습니다.
편집 : Visitor 패턴을 사용하겠습니다. 그것은 내가 알림을위한 단 하나의 메소드를 유지하도록하고, 코드에서 switch 문을 피할 수있다. "방문자"인터페이스는 다양한 파생 메시지 유형을 처리하기 위해 수신기가 필요로하는 다양한 메소드를 지정합니다. 이 메시지의 기본 클래스에 추가 할 단 하나의 메시지가 필요합니다 (이), "순수 가상 수락 (MyMessageTypeVisitor V) 파생 된 메시지 클래스 대해서 v.visit를 사용하여 구현하는 것이다.
이내가이 정도면 생각
일반 방문자 패턴을 사용할 것입니다. –