C#でBuilderパターンとFluentな例


以下にC#でBuilderパターンとFluentな例を示します。

public class Product
{
    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
// 他のプロパティやメソッドを追加することも可能
}
public class ProductBuilder
{
    private Product _product;
    public ProductBuilder()
    {
        _product = new Product();
    }
    public ProductBuilder SetName(string name)
    {
        _product.Name = name;
        return this;
    }
    public ProductBuilder SetDescription(string description)
    {
        _product.Description = description;
        return this;
    }
    public ProductBuilder SetPrice(decimal price)
    {
        _product.Price = price;
        return this;
    }
    public Product Build()
    {
        return _product;
    }
}
// 使用例
var product = new ProductBuilder()
    .SetName("Example Product")
    .SetDescription("This is an example product.")
    .SetPrice(9.99m)
    .Build();
Console.WriteLine($"Name: {product.Name}");
Console.WriteLine($"Description: {product.Description}");
Console.WriteLine($"Price: {product.Price}");

上記の例では、ProductクラスとProductBuilderクラスを作成しています。ProductBuilderクラスでは、Productオブジェクトの構築を行うためのメソッドを提供しています。各メソッドは自身のインスタンスを返すため、メソッドチェーンを使用して複数のプロパティを設定することができます。最後に、Buildメソッドを呼び出すことで最終的なProductオブジェクトが生成されます。

このようにすることで、コードの可読性が向上し、オブジェクトの構築手順が明確になります。また、新しいプロパティが追加された場合でも、Builderクラスのメソッドを拡張することで対応できます。

以上がC#でBuilderパターンとFluentな例の説明です。以上のコードを使用することで、簡潔なインターフェースを持つオブジェクトの構築が可能となります。