diff --git a/DesignPatternGuru/Builder/Builder.csproj b/DesignPatternGuru/Builder/Builder.csproj
new file mode 100644
index 0000000..9ad2a07
--- /dev/null
+++ b/DesignPatternGuru/Builder/Builder.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/DesignPatternGuru/Builder/Builders/ConcreteBuilder.cs b/DesignPatternGuru/Builder/Builders/ConcreteBuilder.cs
new file mode 100644
index 0000000..c56be29
--- /dev/null
+++ b/DesignPatternGuru/Builder/Builders/ConcreteBuilder.cs
@@ -0,0 +1,47 @@
+using Builder.Products;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Builder.Builder
+{
+ internal class ConcreteBuilder : IBuilder
+ {
+ private Product _product = new Product();
+
+ public ConcreteBuilder()
+ {
+ Reset();
+ }
+
+ public void Reset()
+ {
+ _product = new Product();
+ }
+
+ public void BuildPartA()
+ {
+ _product.Add("PartA1");
+ }
+
+ public void BuildPartB()
+ {
+ _product.Add("PartB1");
+ }
+
+ public void BuildPartC()
+ {
+ _product.Add("PartC1");
+ }
+
+ public Product GetProduct()
+ {
+ Product product = _product;
+ Reset();
+
+ return product;
+ }
+ }
+}
diff --git a/DesignPatternGuru/Builder/Builders/Director.cs b/DesignPatternGuru/Builder/Builders/Director.cs
new file mode 100644
index 0000000..82ad080
--- /dev/null
+++ b/DesignPatternGuru/Builder/Builders/Director.cs
@@ -0,0 +1,31 @@
+using Builder.Builder;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Builder.Builders
+{
+ internal class Director
+ {
+ private IBuilder _builder;
+
+ public IBuilder Builder
+ {
+ set { _builder = value; }
+ }
+
+ public void BuildMinimalVariableProduct()
+ {
+ _builder.BuildPartA();
+ }
+
+ public void BuildMaximumVariableProduct()
+ {
+ _builder.BuildPartA();
+ _builder.BuildPartB();
+ _builder.BuildPartC();
+ }
+ }
+}
diff --git a/DesignPatternGuru/Builder/Builders/IBuilder.cs b/DesignPatternGuru/Builder/Builders/IBuilder.cs
new file mode 100644
index 0000000..4346b9a
--- /dev/null
+++ b/DesignPatternGuru/Builder/Builders/IBuilder.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Builder.Builder
+{
+ internal interface IBuilder
+ {
+ void BuildPartA();
+ void BuildPartB();
+ void BuildPartC();
+ }
+}
diff --git a/DesignPatternGuru/Builder/Products/Product.cs b/DesignPatternGuru/Builder/Products/Product.cs
new file mode 100644
index 0000000..f6981b6
--- /dev/null
+++ b/DesignPatternGuru/Builder/Products/Product.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Builder.Products
+{
+ internal class Product
+ {
+ private List