Gözlemci ve Arabulucu, Tasarım Desenleri, Yeniden Kullanılabilir Nesneye Yönelik Yazılım Öğeleri terimlerini içeren orijinal kitapta , Arabulucu modelinin gözlemci deseni kullanılarak uygulanabileceği belirtilmektedir. Bununla birlikte, Meslektaşların (kabaca Gözlemci deseninin Konularına denk), bir Mediator sınıfına veya bir Mediator arayüzüne referans vermesi ile de uygulanabilir.
Gözlemci desenini kullanmak isteyeceğiniz birçok durum vardır, anahtar, nesnenin başka hangi nesnelerin durumunu gözlemlediğini bilmemesi gerektiğidir.
Arabulucu biraz daha belirgindir, sınıfların doğrudan ancak arabulucu aracılığıyla iletişim kurmasını önler. Bu, iletişimin sadece onu idare eden bir sınıfa aktarılmasını sağlayarak Tek Sorumluluk ilkesine yardımcı olur.
Klasik bir Mediator örneği, bir naif yaklaşımın "Foo paneli devre dışı bırakılmışsa ve Bar panelinde" Lütfen tarihi girin "yazan bir etiket varsa, sunucuyu aramayan bir etiket varsa, bir tıklama tıklatma etkinliğinde koda neden olabilecek bir GUI'de Aksi taktirde devam edin ", Mediator paterni ile" Sadece bir düğme olduğumu ve Foo paneli ve Bar panelindeki etiketi bilmediğin dünya çapında bir işim olmadığını söyleyebiliyordu, bu yüzden sadece sunucuyu arayıp aramadığını soracağım. Şu anda tamam. "
Veya, gözlemci kalıbı kullanılarak gerçekleştirilirse, düğme "Hey, gözlemciler (arabulucuyu da içerecek), durumum değişti (biri beni tıkladı). Dikkat ediyorsanız bir şey yapın" derdi. Benim örneğimde bu muhtemelen daha az mantıklı, ama bazen olur ve Observer ile Mediator arasındaki fark, kodun kendisindeki bir farktan daha fazla niyet olacaktır.