以下のような、条件付きロジックに基づいてオブジェクトをインスタンス化する必要があるシナリオでは、ファクトリ メソッド パターンを使用すると、if/elseif 条件の数が原因でクライアント コードが乱雑になるのを防ぐことができます (これは、条件が増えるとメンテナンスの悪夢にもなります)。ロジックのバリエーションが異なるため、製品を作成する必要があります)。
または、救助に来る可能性のある他のデザインパターンはありますか?
public interface IProduct
{
void Method1();
}
public class ProductA : IProduct
{
void Method1()
{
}
}
public class ProductB : IProduct
{
void Method1()
{
}
}
public class ProductC : IProduct
{
void Method1()
{
}
}
public class Client
{
public void Test()
{
int count = 5;
IProduct product;
if (count < 10)
{
product = new ProductA();
}
else if (count == 10)
{
product = new ProductB();
}
else if (count > 10)
{
product = new ProductC();
}
product.Method1();
}
}