(C++ 기준입니다)
******************* <step 1> ***********************
원래라면 각 객체 내의 어떤 정수값을 통해
이중 배열에 각각 인덱스로 넣거나
동작인덱스 = arr[a.value][b.value];
이중스위치문을 통해
두 객체간의 상호작용을 두 객체의 각각의 성질에 따라 결정할 수 있었습니다.
********************* <step 2> *********************
기존의 C에서는 구조체에 그 구조체의 종류를 구분하는 값을 담는 변수를 두고
스위치문이나 배열의 인덱스에 넣어 종류별 처리를 했지만,
다형성을 언어적으로 지원하고부터는
그
int Type; 정수 대신
class TYPE_NAME : public Object
{
public:
...
}
로 처리할 수 있게 됐죠.
******************* <step 3> ***********************
위에서 Type정수 대신 다형성을 통해 오버라이드로 함수를 바꾼 것처럼,
두 개의 객체가 있을 때 그 상호작용의 동작을 결정하기 위해
두 개의 정수 대신 다형성 기법을 통해 그 함수를 결정하도록 하고 싶습니다.
어떻게 해야하는 걸까요...
몇 가지 고안해본 모델이 있기는 한데 좀 비이상적(?) 구조같아서 보류했습니다...
고수분들 번거롭더라도 답변 부탁드립니다 ㅠㅠ 디자인패턴을 찾아봐도 찾기가 어렵더라고요... 제가 못찾을거일지도 모르지만...
아무튼, 요약하자면
다형성을 통해 같은 부모 아래에서 생겨난 임의의 두 객체간의 상호작용을 스위치문이나 배열 없이 결정하는 방법이 궁금합니다.