C#でデザインパターン「Builderパターン」

C# コンピュータ
C#

オブジェクトの構築プロセスを段階的に行い、複雑なオブジェクトを柔軟に生成するためのデザインパターンです。

ウィキペディアの「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
    }
}

コメント