Builder (Kurucu) Tasarım Deseni

Murat Süzen
Sep 20, 2016 · 2 min read

Builder (Kurucu) Tasarım Deseni karmaşık yapıdaki nesnelerin oluşturulmasında, istemcinin nesne tipi belirterek üretimi gerçekleştirilebilmesini sağlamak için kullanılır. Bu tasarımın yapısı aşağıdaki gibidir.

Builder: Product nesnesinin oluşturulması için gereken soyut arayüzü oluşturur.

ConcreteBuilder: Product nesnesini oluşturur.

Director: Builder arayüzünü kullanarak nesne örneklemesi yapar.

Product: Üretim sonucu ortaya çıkan nesnedir. ConcreteBuilder tarafından inşa edilir.

Örneğimizde, telefon üretim yapısını ele alacağız.Aşağıdaki gibi tasarım desenimizin yapısını örneğimize uyarlayalım.

Builder: TelefonBuilder

ConcreteBuilder: Iphone6S,SamsungGalaxy

Director: TelefonFabrikasi

Product: Telefon

namespace TelephoneBuilder
{
class Program
{

public class Telefon
{
public string Marka { get; set; }
public string IsletimSistemi { get; set; }
public double Boyut { get; set; }
public override string ToString()
{
return String.Format("Marka :{0} / İşletim Sistemi:{1} / Boyut:{2}", Marka, IsletimSistemi, Boyut.ToString());
}
}
public abstract class TelefonBuilder
{
protected Telefon telefon;
public Telefon getTelefon
{
get { return telefon; }
}
public abstract void TelefonHazirla();
}
public class Iphone6s : TelefonBuilder
{
public Iphone6s()
{
telefon = new Telefon();
telefon.Boyut = 4;
telefon.IsletimSistemi = "IOS";
}
public override void TelefonHazirla()
{
telefon.Marka = "Apple";
}
}
public class SamsungGalaxy : TelefonBuilder
{
public SamsungGalaxy()
{
telefon = new Telefon();
telefon.Boyut = 5;
telefon.IsletimSistemi = "Android";
}
public override void TelefonHazirla()
{
telefon.Marka = "Samsung";
}
}
public class TelefonFabrikasi
{
public void Hazirla(TelefonBuilder tBuilder)
{
tBuilder.TelefonHazirla();
}
}
static void Main(string[] args)
{
TelefonBuilder telefonBuilder;
TelefonFabrikasi telefonFabrikasi = new TelefonFabrikasi();
telefonBuilder = new Iphone6s();
telefonFabrikasi.Hazirla(telefonBuilder);
Console.WriteLine(telefonBuilder.getTelefon.ToString());
telefonBuilder = new SamsungGalaxy();
telefonFabrikasi.Hazirla(telefonBuilder);
Console.WriteLine(telefonBuilder.getTelefon.ToString());
Console.ReadLine();
}
}
}

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade