オブジェクトの構築プロセスを段階的に行い、複雑なオブジェクトを柔軟に生成するためのデザインパターンです。
ウィキペディアの「Builderパターン」のページ
![]()
Builder パターン - Wikipedia
サンプルコード
/// <summary>
/// BUilderパターンのサンプルコード
/// </summary>
class Product
{
public string Name {get; set;} = "";
public int Price {get; set;} = 0;
}
class Direcotr
{
IBuilder _builder;
public Direcotr(IBuilder builder)
{
_builder = builder;
}
public void Construct(string name, int price)
{
_builder.SetName(name).SetPrice(price);
}
public Product Build()
{
return _builder.Build();
}
}
interface IBuilder
{
Product Build();
IBuilder SetName(string name);
IBuilder SetPrice(int price);
}
class ConcreateBuilder : IBuilder
{
Product _product;
public ConcreateBuilder()
{
_product = new Product();
}
public Product Build()
{
return _product;
}
public IBuilder SetName(string name)
{
_product.Name = name;
return this;
}
public IBuilder SetPrice(int price)
{
_product.Price = price;
return this;
}
}
static class Program
{
static public void Main()
{
IBuilder builder = new ConcreateBuilder();
Direcotr director = new Direcotr(builder);
director.Construct("DesktopPC", 90000);
Product desktop = director.Build();
Console.WriteLine($"{desktop.Name} {desktop.Price}");
// DesktopPC 90000
}
}
コメント