vb.net - 상속 된 클래스의 개체 집계
-
11-12-2019 - |
문제
몇 가지 물체의 구성으로 놀고 있습니다.
두 개의 클래스 (참고 및 작업)가 있습니다.작업 클래스는 노트 클래스에서 태스크가 확장 된 메모입니다.
각 음료는 기존 노트 나 태스크에 메모 또는 작업으로 추가 될 수있는 속성 Property Child as list (of note)
가 있습니다 (따라서이 '자식'노트는 작업 또는 음표 일 수 있음)
IE.
dim x as new note()
x.Child.item(0).Child.item(0).Child.item(0).description.ToString()
.
최종 자식 메모 개체는 실제로 작업이며,이 집계를 어떻게 만들 수 있습니까?나는 노트 나 작업인지 걱정하지 않지만 기본 또는 확장 클래스의 기능을 해제하고 싶습니다.
나의 즉각적인 생각은 각 객체가 작업 목록과 노트 목록을 가져야하지만 더 우아한 솔루션이있을 수있는 것처럼 느껴집니다.
아무도 이것에 대한 어떤 생각을 가지고 있습니까?
해결책
메모 컬렉션은 이미 원하는 것을 이미 제공해야합니다.
노트와 작업을 구별 해야하는 경우 인스턴스가 'typeof'태스크인지 묻고 파생 된 속성과 메소드에서 얻으려면 적절하게 던지십시오.
필요한 메소드 및 속성이 기본 클래스의 일부인 경우 캐스팅 할 필요가 없으면 다형성에 의존하여 유형 적절한 방법 / 속성을 호출 할 수 있습니다.
다른 팁
내가 올바르게 이해하는 경우, 우리가 가상 메소드 / 속성을 호출하는 것과 함께 클래스의 동작을 구현해야합니다. 필수적으로 적절한 기능이 올바른 클래스에서 호출되도록 늦은 바인드 된 호출을 사용합니다.부모 또는 파생 클래스.
VB.NET equivilent가 "무시 무시할 수 있음"과 "재정의"라고 생각합니다.