두 가지 유형이 있다고 해봅시다.서브 클래스에서 계산 된 값을위한 최상의 설계 패턴?
ClassA
{
int ValueA;
int CalculatedA;
}
ClassB
{
int ValueA;
int CalculatedA;
int ValueB;
int CalculatedB;
}
CalculatedB
에는 ValueA
과 ValueB
이 필요합니다. 나는 이것을 구현하는 가장 좋은 패턴을 결정하려고 노력하고있다.
옵션 1 : 서브 클래스 ClassA
및 추가 값을 추가하십시오. 하위 클래스에서 재정의되는 공통 Update()
메서드가 있어야합니다. 이것은 모델의 간단한 코드이지만 이러한 클래스를 만드는 코드는 미리 작성할 모델을 알아야하며 이러한 유형의 목록을 반복하는 코드는 추가 필드를 처리하기 위해 유형을 검사해야합니다.
옵션 2 : 별도의 클래스에 추가 속성을 추가하고 거기에 CalculatedB
에 대한 업데이트 코드가 있습니다. 이 문제는 ClassB
가 ValueA
이 업데이트되는 시점을 알기위한 몇 가지 방법이 필요하다는 것과 이러한 클래스에 INotifyPropertyChanged
과 같은 것을 구현할 필요가 없다는 것입니다. 이를 수행하는 또 다른 방법은 추가 속성 클래스에 일종의 공용 업데이트 메서드를 포함하고 ValueA
이 업데이트 될 때 주 클래스에서 해당 메서드를 호출하도록하는 것입니다. 또한 바람직하지 않습니다.
옵션 3 :ValueB
및 CalculatedB
이 null 입력 가능 유형 인 ClassB
만 있으면됩니다. 패스.
더 이상 있습니까? 어느 쪽을 선택하겠습니까?
나는 닷넷 그물이 아닙니다. 여기에 친구 같은 것을 사용할 수 있습니까? – vrbilgi
친구가 도움을 줄 수는 있지만, 내부 메서드 나 설정자를 공개하는 것과 동일한 문제입니다. 공용은 더 작은 집합입니다. –