以下に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な例の説明です。以上のコードを使用することで、簡潔なインターフェースを持つオブジェクトの構築が可能となります。