Skeet's article을 읽은 후, 내가하는 일반적인 조언을했다 "는 상속 계층 구조를 통해 때 몇 가지 방법을 이름을 변경 ..consider 과부하의 정도를 줄일 수 있습니다.이 조언을 두 번 간다 .."일반적인 과부하 모호성
그러나 좀 더 모호함을 이해하고 싶습니다. (과부하를 지킬 수 있는지 확인하십시오.)
다양한보기 모델을 필요로하는 지루한 테스트 부분을 완성하는 데 도움이되는 테스트 도우미 일뿐입니다. 먼저 유효하거나 유효하지 않은 상태가됩니다.
상속 관계가없는 두 뷰 모델에서이 헬퍼를 사용하기 시작했으며 잘 작동했습니다.
다른 뷰 모델 유형의 기본 클래스 인 ViewModelWrapper의 또 다른 oveload에 유용 할 것으로 결정했습니다. 그래서 컴파일러는 이전에 VmWrapper의 하위 클래스에 사용할 확장을 알지 못한다고 불평했습니다.
그래서이 경우 3 번째 오버로드와 1 번째 코드가됩니다. 내가 암시 하듯이, 나는 이미 과부하를 없앴다. 그러나
내가 과부하로 일하는 것을 어떻게 볼 수 있겠는가?
건배,
Berryl
// SatVm
public static void MakeValid<TParentModel, TModel>(this ISatelliteVm<TParentModel, TModel> instance, IEntityValidator validator) {...}
// HubVm
public static void MakeValid<TParentModel>(this HubViewModel<TParentModel> instance, IEntityValidator validator, bool bValid = true)
where TParentModel : Entity { ... }
// VmWrapper
public static void MakeValid<TModel>(this ViewModelWrapper<TModel> instance, IEntityValidator validator) { ... }
이 미안, 해킹처럼 보인다. – Adam