나는 내가 dodgey 조금있을 수 있습니다 의심되는 코드에서 다음과 같은 상황이 :는 C#에서 일반 클래스에 정적 메서드에 액세스
I 클래스가 있습니다
abstract class DataAccessBase<T> : IDataAccess where T : AnotherAbstractClass
는이 클래스 DataAccessBase
도있다을 이제
static IDataAccess CreateInstance(TypeToCreateEnum)
의 타이하십시오있는 문에서 열거 값을 사용하여 자체의 파생 클래스의 인스턴스를 생성하는 정적 팩토리 메소드는 생성하는 유형을 도출 결정합니다 이 제네릭을 잘 사용의 한계를 밀어 경우
class PoLcZoneData : DataAccessBase<PoLcZone> // PoLcZone is derived from AnotherAbstractClass
지금까지 내가 잘 모르겠지만, 나는 어떻게 정말 걱정 무엇 이니 DataAccessBase<T>
에서 파생 된 PES 자신에게 일반적인하지, 그들은 T에 대한 유형을 지정 처음에 정적 CreateInstance()
메서드에 액세스하려면 다음을 수행하십시오.
현재이 작업을 수행하는 방법은 T : AnotherAbstractClass
인 모든 유형 T를 전달하는 것입니다. 특히 나는 AnotherAbstractClass
그 자체를 전달하고있다. 이것은 컴파일을 잘 해주지 만, 모든 타입을 일반 클래스로 전달하는 것만으로도 통계학에서 얻는 것이 약간 교묘합니다.
실제로는 DataAccessBase<T>
이 상속 체인의 하위 레벨이기 때문에 상황을 다소 간소화했지만 static 팩토리 메소드는 중간이 아니며 일반적인 레벨이 아닌 유일한 레벨에서 PoLcZoneData
과 같은 클래스가있는 클래스가 있습니다.
이 약정에 대한 사람들의 생각은 무엇입니까?
이 어떤 언어입니다
디미트리? –
죄송합니다. C#입니다. 제목에 추가하는 것을 잊어 버렸습니다. – MrLane