C#

Builder Tasarım Deseni

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tasarım desenlerinden biri olan Builder tasarım desenini anlatacağım. Hadi başlayalım !

Aslında bu tasarım deseni diğer tüm tasarım desenlerinde de olduğu gibi C# diline özgü bir kavram değil, tüm nesne yönelimli programlama dillerinde daha temiz kod yazabilmek için oluşturulmuş ve yazılımcılar tarafından da kabul görmüş yazılı olmayan kurallardır ve nesne yönelimli programlama yapılabilen tüm dillerde uygulanabilmektedir.

Builder Tasarım Deseni Nedir?

Builder tasarım deseni, nesne odaklı programlama prensipleriyle uyumlu bir şekilde bir nesnenin yapısını adım adım oluşturmak için kullanılan bir desendir. Bu desen, bir nesnenin farklı bileşenlerini ve bunların nasıl bir araya getirildiğini ayrı ayrı ele alarak, karmaşık bir yapının oluşturulmasını kolaylaştırır. Ayrıca, nesne yapısındaki değişiklikleri yönetmeyi ve kodun bakımını kolaylaştırmayı da sağlar.

C# İle Uygulanması

C# ile Builder tasarım deseninin uygulanması oldukça basittir. Aşağıda, bir pizza yapımını simüle eden bir örnek kullanarak Builder tasarım deseninin nasıl kullanıldığını gösteren C# kodu örnekleri bulabilirsiniz:

Pizza Sınıfı Oluşturma

Öncelikle, bir Pizza sınıfı tanımlayalım:

public class Pizza
{
    public string Dough { get; set; }
    public string Sauce { get; set; }
    public string Topping { get; set; }
}

PizzaBuilder Arayüzü Oluşturma

Builder tasarım deseni için bir PizzaBuilder arayüzü tanımlayalım:

public interface PizzaBuilder
{
    void BuildDough();
    void BuildSauce();
    void BuildTopping();
    Pizza GetPizza();
}

Bu arayüz, Pizza nesnesinin yapısını oluşturmak için gerekli adımları içerir. BuildDough, BuildSauce ve BuildTopping metodları, Pizza nesnesinin sırasıyla hamur, sos ve malzeme bileşenlerini oluşturmak için kullanılır. GetPizza metodunu kullanarak Pizza nesnesi döndürülür.

HawaiianPizzaBuilder Sınıfı Oluşturma

Şimdi, PizzaBuilder arayüzünden türetilmiş bir HawaiianPizzaBuilder sınıfı tanımlayalım:

public class HawaiianPizzaBuilder : PizzaBuilder
{
    private Pizza _pizza = new Pizza();

    public void BuildDough()
    {
        _pizza.Dough = "thin";
    }

    public void BuildSauce()
    {
        _pizza.Sauce = "tomato";
    }

    public void BuildTopping()
    {
        _pizza.Topping = "ham and pineapple";
    }

    public Pizza GetPizza()
    {
        return _pizza;
    }
}

Bu sınıf, PizzaBuilder arayüzünü uygular ve Pizza nesnesinin yapısını oluşturmak için gerekli adımları belirler. BuildDough, BuildSauce ve BuildTopping metodları, HawaiianPizza nesnesinin sırasıyla hamur, sos ve malzeme bileşenlerini oluşturmak için kullanılır. GetPizza metodunu kullanarak HawaiianPizza nesnesi döndürülür.

Director Sınıfı Oluşturma

Son olarak, Director sınıfı tanımlayalım. Bu sınıf, PizzaBuilder arayüzü üzerinden Pizza nesnesinin yapısını yönetir ve nesnenin nasıl oluşturulacağını belirler:

public class Director
{
    private PizzaBuilder _builder;

    public Director(PizzaBuilder builder)
    {
        _builder = builder;
    }

    public void MakePizza()
    {
        _builder.BuildDough();
        _builder.BuildSauce();
        _builder.BuildTopping();
    }

    public Pizza GetPizza()
    {
        return _builder.GetPizza();
    }
}

Bu sınıf, PizzaBuilder arayüzünden türetilmiş bir nesneyi kullanarak Pizza nesnesinin yapısını oluşturur. MakePizza metodunda, PizzaBuilder arayüzündeki gerekli adımlar sırasıyla çağrılır ve GetPizza metodunu kullanarak oluşturulan Pizza nesnesi döndürülür.

Pizza Yapımını Simüle Etme

Son olarak, bir HawaiianPizzaBuilder nesnesi oluşturarak, Director sınıfını kullanarak bir pizza yapımını simüle edebiliriz:

PizzaBuilder builder = new HawaiianPizzaBuilder();
Director director = new Director(builder);

director.MakePizza();
Pizza pizza = director.GetPizza();

Bu kod bloğunda, HawaiianPizzaBuilder nesnesi oluşturulur ve Director sınıfına bu nesne verilir. director.MakePizza() çağrısı, HawaiianPizzaBuilder nesnesinin BuildDough(), BuildSauce() ve BuildTopping() metodlarının sırasıyla çağrılmasını sağlar. director.GetPizza() çağrısı, HawaiianPizzaBuilder nesnesi üzerinde GetPizza() metodunu çağırarak oluşturulan Pizza nesnesini döndürür.

Bu örnek, Builder tasarım deseninin nasıl kullanılabileceğini ve C# ile nasıl uygulanabileceğini göstermektedir. Builder tasarım deseni, karmaşık nesne yapısının oluşturulmasını kolaylaştırır ve nesnenin yapısındaki değişiklikleri yönetmeyi kolaylaştırır.

Evet Builder tasarım deseni ve C# ile uygulanması bu şekilde idi. Tüm C# yazılarımıza buraya, diğer tasarım desenleri ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu