주말 동안 코드를 작성하고 있었고 기본 클래스에서 정적 메소드로 팩토리를 작성하려고한다는 것을 알았습니다.
내 질문은 이것이 ac # idomatic 접근법인지 단순히 아는 것입니까?
기본 클래스에는 파생 클래스에 대한 지식이 있다는 사실에서 비롯되지 않을 수도 있습니다.
즉, 동일한 결과를 얻는 더 간단한 방법은 확실하지 않습니다. 다른 모든 공장 클래스는 (최소한) 불필요한 복잡성처럼 보입니다 (?)
다음과 같은 것 :
class Animal
{
public static Animal CreateAnimal(string name)
{
switch(name)
{
case "Shark":
return new SeaAnimal();
break;
case "Dog":
return new LandAnimal();
break;
default:
throw new Exception("unknown animal");
}
}
}
class LandAnimal : Animal
{
}
class SeaAnimal : Animal
{
}