C# ile Command Pattern Kullanımı: Temel Bilgiler ve Örnekler

C# ile Command Pattern Kullanımı: Temel Bilgiler ve Örnekler


Yazılım geliştirme süreçlerinde, tasarım desenleri (design patterns) önemli bir rol oynamaktadır. Bu makalede, C# dilinde kullanabileceğiniz Command Pattern desenini ele alacağız. Command Pattern, istekleri veya işlemleri nesnelerle temsil ederek yazılımda esneklik ve genişletilebilirlik sağlar. Bu desen, kullanıcı arayüzleri, işlem günlükleri veya işlem kuyruğu uygulamaları gibi durumlarda yaygın olarak kullanılmaktadır.

Command Pattern Nedir?

Command Pattern, bir isteği bir nesne olarak temsil etmeye yarayan bir tasarım desenidir. Bu sayede, işlemleri nesne yönelimli bir şekilde yönetebiliriz. Genellikle üç ana bileşen içerir: Command arayüzü, ConcreteCommand sınıfları ve İstemci (Client). Command arayüzü, tüm somut komut sınıflarının uygulaması gereken bir yöntem tanımlar. ConcreteCommand sınıfları, bu arayüzü uygulayarak belirli işlemleri gerçekleştirir. İstemci ise komut nesnelerini oluşturur ve bunları bir alıcı nesneye (Receiver) gönderir.

Command Pattern Uygulama Örneği

Aşağıda, Command Pattern kullanımına dair bir örnek verilmiştir. Bu örnekte, kullanıcı işlemlerini gerçekleştirmek için bir komut nesnesi oluşturacağız.

1. Command Arayüzü

public interface ICommand
{
    void Execute();
}

2. Somut Komut Sınıfı

public class TurnOnLightCommand : ICommand
{
    private readonly Light _light;

    public TurnOnLightCommand(Light light)
    {
        _light = light;
    }

    public void Execute()
    {
        _light.TurnOn();
    }
}

3. Alıcı Sınıfı

public class Light
{
    public void TurnOn() => Console.WriteLine("Light is ON");
    public void TurnOff() => Console.WriteLine("Light is OFF");
}

4. İstemci Sınıfı

public class Client
{
    public static void Main(string[] args)
    {
        Light light = new Light();
        ICommand turnOnLight = new TurnOnLightCommand(light);
        turnOnLight.Execute();  // Çıktı: Light is ON
    }
}

Sonuç

Command Pattern, yazılım geliştirme süreçlerinde esnek ve bakım kolaylığı sağlayan önemli bir desendir. C# dilinde bu deseni kullanarak, işlemleri nesnelerle temsil edebilir ve yönetimini kolaylaştırabilirsiniz. Yine de, her tasarım deseninde olduğu gibi, Command Pattern'ı kullanmadan önce uygulamanızın ihtiyaçlarını dikkatlice değerlendirmeniz önemlidir. Böylece, tasarım desenlerinden en iyi şekilde faydalanabilirsiniz.