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:
Post a Comment