추상화에 대한 내 previous question에서 다음과 같은 또 다른 질문이 있습니다. 이벤트가 생성되면 이벤트 설정과 관련하여 또 다른 문제가 있습니다.추상베이스를 가진 객체에 알 수없는 타입을 전달합니다.
상황에 따라 모든 유형의 이벤트를 만들 수 있으며 데이터를 아무 문제없이 적용 할 수 있습니다 (전략 디자인 패턴 수정 버전 사용). 문제는 현재 이벤트가 생성 될 때 이벤트를 전달해야한다는 것입니다.
IEvent* newEvent = new SpeedEvent(eventID, interpolation, 50.0f);
또는
IEvent* newEvent = new AnimationEvent(eventID, interpolation, &newAnimation);
나는 데이터 객체의 생성에 무엇인지 알고있는 경우이 방법은 괜찮지 만, 나는 데이터가 인스턴스화 될 것입니다 무엇을 알 수 없습니다 많은 경우가있다 .
IEvent* newEvent = new SpeedEvent(eventID, interpolation);
그리고 이런 식으로 그것을 데이터를 할당 :
eventManager->assignData(eventID, *unknown data type*);
이 방법은, 내가 개체가 할 것
는 이상적 일 것이다 무엇는 다음과 같은 새로운 이벤트를 생성하는 것입니다 데이터를 자체 방식으로 처리하십시오. 이 문제를 해결하는 방법에 대한 제안은 많이 드러나지 만, 가능한 경우 템플릿을 사용하지 않으려합니다.
내 현재 데이터 및 개체 구조는 이전 질문에 대한 답변에서 제안 된 것과 매우 유사합니다.
오버 기능을 만들고 두 개의 매개 변수를 사용하고 관련'Event' 형 생성자'assignData (INT 이드베이스 * 데이터)'Base' –
'유래의 모든 유형을 취할 수있는 자료의 수 ' 인스턴스화를 지연시켜 모든 데이터를 사용할 수 있도록하십시오. 누군가가 아직 그것을 사용할 수 없기 때문에 단순히 생성자 매개 변수를 이동하는 것은 좋은 계획이 아닙니다. 인스턴스화를 지연하고 모든 데이터를 사용할 수있을 때 개체를 만드는 것이 좋습니다. – tp1
내 계획은 모든 새 이벤트에 기본값을 부여하는 것입니다 (예 : 이벤트의 속도는 보간되는 애니메이션의 기본값과 같습니다 (이 값은 존재합니다). 내가 할 수없는 일은 이벤트가 생성되면 사용자가 GUI를 사용하여 이벤트를 업데이트 할 수 있다는 것입니다. – Agenten