C#

Strategy Tasarım Deseni

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tasarım desenlerinden olan strategy 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.

Strategy Tasarım Deseni Nedir?

Strategy tasarım deseni, davranışsal bir tasarım desenidir. Bu desen, bir işlemi gerçekleştirmek için farklı algoritmaların kullanılmasına olanak tanır ve algoritma seçimini çalışma zamanında yapar. Bu desen, kodun tekrarlanmasını ve değiştirilmesini azaltır, kodun okunabilirliğini ve bakımını kolaylaştırır.

Nasıl Çalışır?

Strategy tasarım deseni, bir ana sınıfın oluşturulmasıyla başlar. Bu ana sınıf, algoritmaların kullanacağı arayüzü belirler. Bu arayüz, farklı algoritmalara sahip nesneler tarafından uygulanır. Bu nesneler, ana sınıf tarafından oluşturulur ve yönetilir.

Ana sınıfın amacı, çalışma zamanında bir algoritma seçmek ve seçilen algoritmaya göre işlem yapmaktır. Seçim, ana sınıfın bir yöntemi aracılığıyla yapılır. Bu yöntem, bir parametre olarak bir algoritma nesnesi alır ve bu nesne tarafından belirlenir.

C# İle Uygulanması

Aşağıda, C# programlama dilinde Strategy tasarım desenini kullanarak bir örnek sunacağız. Bu örnek, farklı ödeme yöntemlerinin kullanıldığı bir ödeme işlemi senaryosunu ele alacaktır.

Öncelikle, IPaymentStrategy arayüzünü oluşturuyoruz. Bu arayüz, ödeme yöntemlerinin uygulaması gereken bir yöntem içerir:

public interface IPaymentStrategy
{
    void Pay(double amount);
}

Daha sonra, farklı ödeme yöntemlerini uygulayan nesneleri oluşturuyoruz:

public class CreditCardPayment : IPaymentStrategy
{
    public void Pay(double amount)
    {
        Console.WriteLine("Paying " + amount + " using Credit Card");
    }
}

public class PayPalPayment : IPaymentStrategy
{
    public void Pay(double amount)
    {
        Console.WriteLine("Paying " + amount + " using PayPal");
    }
}

Son olarak, PaymentContext sınıfını oluşturuyoruz. Bu sınıf, IPaymentStrategy arayüzünü uygular ve ödeme işlemini gerçekleştirecek olan algoritmayı seçmek için bir yöntem içerir:

public class PaymentContext
{
    private IPaymentStrategy _paymentStrategy;

    public void SetPaymentStrategy(IPaymentStrategy paymentStrategy)
    {
        _paymentStrategy = paymentStrategy;
    }

    public void MakePayment(double amount)
    {
        _paymentStrategy.Pay(amount);
    }
}

Örneği çalıştırmak için, aşağıdaki kodu kullanabilirsiniz:

PaymentContext context = new PaymentContext();

// Ödeme yöntemi olarak kredi kartı seçimi
context.SetPaymentStrategy(new CreditCardPayment());
context.MakePayment(100.00);

// Ödeme yöntemi olarak PayPal seçimi
context.SetPaymentStrategy(new PayPalPayment());
context.MakePayment(200.00);

Bu örnekte, PaymentContext sınıfını kullanarak ödeme işlemi gerçekleştiriyoruz. İlk olarak, kredi kartı ödeme yöntemini seçiyoruz ve ardından 100.00 TL tutarında bir ödeme yapıyoruz. Daha sonra, PayPal ödeme yöntemini seçiyoruz ve 200.00 TL tutarında bir ödeme yapıyoruz.

Bu örnekte, Strategy tasarım deseni kullanılarak ödeme işlemi gerçekleştirilirken, kodun tekrarlanması ve bakımının kolaylığı sağlanmıştır. Yeni bir ödeme yöntemi eklemek istediğimizde, yalnızca IPaymentStrategy arayüzünü uygulayan bir nesne oluşturmamız ve PaymentContext sınıfına bu nesneyi eklememiz yeterlidir.

Sonuç

Strategy tasarım deseni, farklı algoritmaların kullanılması gereken senaryolarda kullanışlıdır. Bu desen, kodun tekrarlanmasını ve bakımını azaltır, kodun okunabilirliğini ve bakımını kolaylaştırır. Bu makalede, C# programlama dilinde Strategy tasarım deseninin nasıl kullanılabileceğine dair bir örnek sunduk.

Evet Strategy tasarım deseni ve C# ile uygulanması bu şekilde yapılmakta. Tüm C# yazılarımıza buraya, diğer tasarım deseni 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 yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu