私は週末にいくつかのコードを書いていましたが、ファクトリを基本クラスの静的メソッドとして書きたいと思いました。
私の質問は、これが独創的なアプローチであるかどうかを知ることですか?
基本クラスが派生クラスの知識を持っているという事実からではないかもしれないという私の感覚です。
そうは言っても、同じ結果を得るためのもっと簡単な方法はわかりません。他のファクトリクラス全体は(少なくとも私には)不要な複雑さ(?)
何かのようなもの:
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
{
}