C# ile Mediator Pattern Kullanımı: Etkili İletişim Yöntemi
C# ile Mediator Pattern Kullanımı: Etkili İletişim Yöntemi
Mediatör Deseni, yazılım geliştirme süreçlerinde nesnelerin birbirleriyle ilişkisini yönetmek amacıyla kullanılan bir tasarım kalıbıdır. C# gibi nesne yönelimli programlama dillerinde bu kalıbı kullanmak, kodunuzu daha düzenli ve sürdürülebilir hale getirir. Bu makalede, C# ile Mediator Pattern'in nasıl uygulandığını, avantajlarını ve örnek bir uygulama ile açıklayacağız.
Mediatör Deseninin Temel İlkeleri
Mediatör Deseni, nesneler arasında doğrudan bir iletişim olmaksızın, bir medyatör aracılığıyla iletişimi sağlar. Bu yaklaşım, nesnelerin birbirlerine bağımlılığını azaltır ve kodun daha modüler olmasına yardımcı olur. Temel olarak üç bileşenden oluşur: Medyatör, Konumlar (Kolaylaştırıcılar) ve İletişim Yöntemleri. Her bir konum, medyatör aracılığıyla mesaj gönderir ve alır.
1. Medyatör Arayüzü
public interface IMediator
{
void Register(Colleague colleague);
void Send(string message, Colleague colleague);
}
2. Kolaylaştırıcı Sınıflar
public abstract class Colleague
{
protected IMediator mediator;
public Colleague(IMediator mediator)
{
this.mediator = mediator;
}
}
public class ConcreteColleague1 : Colleague
{
public ConcreteColleague1(IMediator mediator) : base(mediator) {}
public void Send(string message)
{
mediator.Send(message, this);
}
}
public class ConcreteColleague2 : Colleague
{
public ConcreteColleague2(IMediator mediator) : base(mediator) {}
public void Send(string message)
{
mediator.Send(message, this);
}
}
3. Medyatör Sınıfı
public class ConcreteMediator : IMediator
{
private ConcreteColleague1 colleague1;
private ConcreteColleague2 colleague2;
public void Register(Colleague colleague)
{
if (colleague is ConcreteColleague1)
{
colleague1 = (ConcreteColleague1)colleague;
}
else if (colleague is ConcreteColleague2)
{
colleague2 = (ConcreteColleague2)colleague;
}
}
public void Send(string message, Colleague colleague)
{
if (colleague == colleague1)
{
Console.WriteLine("Colleague1 sends: " + message);
colleague2.Receive(message);
}
else
{
Console.WriteLine("Colleague2 sends: " + message);
colleague1.Receive(message);
}
}
}
Sonuç
Mediatör Deseni, C# projelerinde Karmaşık iletişimleri yönetmek için etkili bir araçtır. Bu desen, nesnelerin bağımsız bir şekilde değişimini ve gelişimini desteklerken, sistemin genel esnekliğini artırır. Yukarıda paylaşılan örnek, bu tasarım kalıbının nasıl uygulanabileceğine dair temel bir bakış sunmaktadır. Projelerinizde Mediator Pattern kullanarak, kodunuzu daha düzenli ve sürdürülebilir hale getirebilirsiniz.
Yorum Gönder