:추가 데이터를 저장하기 위해 개체 계층 구조를 확장하는 방법은 무엇입니까? 나는 클래스 계층 구조를 가지고 C#을 코드베이스에서 일하고 있어요
class Animal { Animal prey; }
class Mammal : Animal { Mammal[] livesAmicablyWith; }
class Lion : Mammal { }
는 바보 같은 예를 용서.
이 클래스 계층 구조를 동일한 정확한 개체 형식으로 표현할 수있는 것으로 재사용하고 싶지만 더 많은 데이터가 필요합니다. 내 이상적으로, 그 결과는 다음과 같습니다
class Animal { Animal prey; string moreAnimalData; }
class Mammal : Animal { Mammal[] livesAmicablyWith; string moreMammalData; }
class Lion : Mammal { string moreLionData; }
그러나, 나는이 기존 계층 구조에 구성원을 추가 피하고 싶은, 그들은 기껏 낭비 공간, 최악의 버그가 발생하기 쉬운 방해가 될 것이기 때문에.
또한 작업을 계속하기 위해 모든 원래 기능이 필요합니다. 다음은 내가 생각한 것입니다.
class AnimalExtended : Animal { }
class MammalExtended : Mammal {
public void UseLivesAmicablyWith()
{
foreach(Mammal m in livesAmicablyWith)
{
if(!(m is MammalExtended)
throw new Exception();
// use the MammalExtended
}
}
}
class LionExtended : Lion { }
여기에 어떤 의견이 있습니까?
'if' 줄에 괄호가 없습니다. –