하위 클래스 특정 데이터를 저장해야하는 배열을 상속하는 가장 좋은 방법은 무엇입니까?
-
09-06-2019 - |
문제
다음과 유사한 상속 계층을 설정하려고합니다. 라코 디스
MotorcycleAxle 개체는 Motorcycle 개체의 Axles 배열에만 저장하고 CarAxle 개체는 Car 개체의 Axles 배열에 저장하고 싶습니다.문제는 하위 클래스의 배열을 재정 의하여 둘 중 하나를 강제로 실행할 수있는 방법이 없다는 것입니다.이상적으로는 다음과 같은 것이 Motorcycle 클래스에 유효합니다. 라코 디스
하지만 재정의 할 때 유형이 일치해야합니다.이 아키텍처를 어떻게 지원할 수 있습니까?Axles 멤버에 액세스 할 때마다 런타임 유형 검사 및 캐스팅을 많이 수행해야합니까?강력한 타이핑과 다형성의 이점을 잃기 시작하기 때문에 런타임 유형 검사를 추가하는 것을 좋아하지 않습니다.WheelAttached 및 Left / RightWheelAttached 속성은 유형에 따라 다르기 때문에이 시나리오에서는 최소한 몇 가지 런타임 검사가 있어야하지만 최소화하고 싶습니다.
해결책
더 많은 제네릭 사용 라코 디스
다른 팁
두 가지 옵션이 떠 오릅니다.1은 제네릭을 사용합니다. 라코 디스
두 번째는 섀도 잉을 사용하며 이는 다음과 같은 속성이 있다고 가정합니다. 라코 디스
섀도 잉의 문제는 일반적인 목록이 있다는 것입니다.불행히도 CarAxle 만 포함하도록 목록을 제한 할 수는 없습니다.또한 상속 체인이 있어도 List
제네릭을 직접 찾아 보겠습니다.