C# ile Factory Pattern Örneği

Merhaba!, C# dilinde bir factory pattern örneği oluşturalım. Factory pattern, bir nesne yaratma işlemini (özellikle de bu nesnelerin aynı türden olması durumunda) daha organize ve kolay hale getiren bir tasarım kalıbıdır.

Örneğin, bir uygulamanızda farklı türdeki ürünleri temsil eden nesneler olsun ve bu nesneleri oluşturmak için ayrı ayrı nesne yaratma kodları yazmak istemiyorsanız, factory pattern kullanabilirsiniz.

// Öncelikle, bir "Product" adlı bir arayüz (interface) tanımlayalım.
// Bu arayüz, tüm ürün nesnelerinin ortak bir özelliği olan "Calculate" adlı bir metodu içerecek.
public interface Product
{
    int Calculate(int x, int y);
}

// "Product" arayüzünü uygulayan "ProductA" ve "ProductB" adlı iki sınıf oluşturalım.
// Bu sınıflar, "Calculate" metodunu farklı şekillerde uygulayacaklar.
public class ProductA : Product
{
    public int Calculate(int x, int y)
    {
        return x - y;
    }
}

public class ProductB : Product
{
    public int Calculate(int x, int y)
    {
        return x + y;
    }
}

// Artık, bu iki sınıfı kullanarak nesne oluşturmak için bir "ProductFactory" sınıfı oluşturalım.
// Bu sınıf, "CreateProduct" adlı bir metod içerecek ve bu metod parametre olarak bir string alacak.
// Bu string parametresine göre, hangi ürün nesnesinin oluşturulacağını belirleyecek ve o nesneyi döndürecek.
public class ProductFactory
{
    public Product CreateProduct(string productName)
    {
        if (productName == "A")
        {
            return new ProductA();
        }
        else if (productName == "B")
        {
            return new ProductB();
        }
        else
        {
            throw new ArgumentException("Invalid product name.");
        }
    }
}

 

Bu örnekte, "ProductFactory" sınıfını kullanarak "ProductA" veya "ProductB" nesnelerini oluşturabilirsiniz. Örneğin:

var factory = new ProductFactory();
var productA = factory