Mediator Design Pattern

Yunus Emre Ulusan
3 min readJan 6, 2024

--

Mediator tasarım deseni, bir grup nesne arasındaki iletişimi düzenlemek ve bu nesneler arasındaki doğrudan bağımlılıkları önlemek için kullanılır.

Diyelim ki bir grup insan bir projede bir araya geldi. Herkes birbirine bilgi gönderiyor, ancak bu iletişim karmaşık hale gelebilir. İşte burada Mediator devreye girer.

Mediator, sanki bir aracı gibi çalışır. Herkes doğrudan diğerleriyle konuşmak yerine Mediator üzerinden iletişim kurar. Eğer bir kişi başka birine bir şey söylemek isterse, bunu doğrudan yapmak yerine Mediator’e söyler. Mediator, bu mesajı alır ve onu diğer kişiye ileterek iletişimi sağlar.

Bu düzenleme sayesinde, herkes birbirini bilmese veya birbirine doğrudan erişim sağlamasa bile iletişim kurabilir. Mediator, iletişimi merkezileştirir ve yönetir, bu da sistemi daha düzenli ve bakımı daha kolay hale getirir.

Gerçek hayattan örnek vermek istiyorum :

Diyelim ki bir şirket içinde farklı departmanlar arasında bilgi paylaşımı gerekiyor. Bu durumda, Mediator deseni kullanılabilir.

Amacımız :

  • Farklı departmanlardaki çalışanlar arasında iletişimi sağlamak.
  • Departmanlar arasındaki doğrudan bağımlılıkları önlemek.

Katılımcılar:

-Mediator:

  • İletişimi düzenleyen bir sistem veya ara yüz sağlar.
  • Departmanlar arasındaki bilgi alışverişini yönetir.

-Departmanlar:

  • Kendi içerisinde birbiriyle doğrudan iletişim kurmaz.
  • Mediator aracılığıyla diğer departmanlarla iletişim kurar.

-Nasıl Çalışır:

  • Her departman, kendi içindeki işlevselliği yerine getirir ve sadece Mediator ile iletişime geçer.
  • İlgili bir departman, bir başka departmandan bilgi almak istediğinde bu talep Mediator’e iletilir.
  • Mediator, bu talebi karşılayarak ilgili bilgiyi sağlar

Örnek Senaryo:

  • İnsan kaynakları departmanı, yeni bir pozisyon için bir iş ilanı yayınlamak istiyor.
  • İlgili departmanın yöneticisi, bu talebi Mediator aracılığıyla duyar ve gerekli onayları alır.
  • Mediator, bu bilgiyi insan kaynakları departmanına iletir.

Gerçek Hayattan bir örnek daha;

Havaalanı kontrol alanına yaklaşan veya bu alandan ayrılan uçak pilotları doğrudan birbirleriyle iletişim kurmazlar. Bunun yerine, bir hava trafik kontrolörüne konuşurlar, ki bu kontrolör genellikle pistin yakınındaki yüksek bir kulede bulunur. Hava trafik kontrolörü olmadan pilotlar, havaalanı civarındaki her uçağı bilmek zorunda kalır ve iniş öncelikleri konusunu düzinelerce diğer pilotla tartışmak zorunda kalırlardı. Bu durum muhtemelen uçak kazası istatistiklerini artırırdı.

Kule, tüm uçuğu kontrol etmek zorunda değildir. Sadece terminal bölgesindeki kısıtlamaları uygulamak için vardır çünkü burada etkileşimde bulunan aktörlerin sayısı bir pilota karşı ezici olabilir.

Mediator Structure (Yapı)

Sonuç olarak, Mediator tasarım deseni, uçaklar gibi karmaşık sistemlerde olduğu gibi bir grup nesnenin birbirleriyle iletişimini düzenlemek ve doğrudan bağımlılıkları önlemek için oldukça etkili bir yaklaşımdır. Havaalanındaki hava trafik kontrolörü gibi, bu desen sayesinde sistemin bütünlüğünü koruyarak, her bir bileşenin kendi işlevselliğine odaklanmasını sağlayabiliriz.

Bu tasarım deseni, sistemin genel performansını artırırken, bakım maliyetlerini ve hataları azaltabilir. Bu nedenle, bir sistemdeki etkileşimleri düzenlemek ve bağımlılıkları azaltmak istendiğinde Mediator tasarım deseni güçlü bir araç olabilir.

Referans aldığım yerler :

--

--