Saturday, April 26, 2025

Builder Design Pattern in C#

Builder Design Pattern in C#

This is a C# implementation of the Builder design pattern, based on the Gang of Four's structure. Each class is placed in a separate file, and all code lines are commented.

🔧 Product.cs

public class Product
{
    private List<string> _parts = new List<string>(); // List to store product parts

    public void Add(string part)
    {
        _parts.Add(part);
    }

    public void Show()
    {
        Console.WriteLine("Product Parts:");
        foreach (string part in _parts)
        {
            Console.WriteLine("- " + part);
        }
    }
}

🔧 Builder.cs

public abstract class Builder
{
    public abstract void BuildPartA(); // Step to build Part A
    public abstract void BuildPartB(); // Step to build Part B
    public abstract Product GetResult(); // Returns the final product
}

🔧 ConcreteBuilder.cs

public class ConcreteBuilder : Builder
{
    private Product _product = new Product(); // The product instance being built

    public override void BuildPartA()
    {
        _product.Add("PartA"); // Adds PartA to the product
    }

    public override void BuildPartB()
    {
        _product.Add("PartB"); // Adds PartB to the product
    }

    public override Product GetResult()
    {
        return _product; // Returns the fully built product
    }
}

🔧 Director.cs

public class Director
{
    public void Construct(Builder builder)
    {
        builder.BuildPartA(); // Instruct builder to build Part A
        builder.BuildPartB(); // Instruct builder to build Part B
    }
}

🔧 Program.cs

class Program
{
    static void Main(string[] args)
    {
        Director director = new Director(); // Initializes the director
        Builder builder = new ConcreteBuilder(); // Initializes a concrete builder

        director.Construct(builder); // Directs the builder to build the product

        Product product = builder.GetResult(); // Retrieves the final product
        product.Show(); // Displays the product parts
    }
}

💡 Console Output

Product Parts:
- PartA
- PartB

No comments:

Builder Design Pattern in C#

Builder Design Pattern in C# This is a C# implementation of the Builder design pattern, based on the Gang of Four's structure. Each cl...