Dalam buku asli yang menciptakan istilah Pengamat dan Mediator, Pola Desain, Elemen Perangkat Lunak Berorientasi Objek Reusable itu mengatakan bahwa pola Mediator dapat diimplementasikan dengan menggunakan pola pengamat. Namun itu juga dapat diimplementasikan dengan memiliki Kolega (kira-kira setara dengan Subjek dari pola Pengamat) memiliki referensi ke kelas Mediator atau antarmuka Mediator.
Ada banyak kasus ketika Anda ingin menggunakan pola pengamat, kuncinya adalah bahwa pada objek tidak boleh tahu apa objek lain yang mengamati keadaan itu.
Mediator sedikit lebih spesifik, ia menghindari membuat kelas berkomunikasi secara langsung tetapi melalui mediator. Ini membantu prinsip Tanggung Jawab Tunggal dengan memungkinkan komunikasi diturunkan ke kelas yang hanya menangani itu.
Contoh Mediator klasik adalah dalam GUI, di mana pendekatan naif dapat mengarah ke kode pada acara klik tombol yang mengatakan "jika panel Foo dinonaktifkan dan panel Bar memiliki label yang mengatakan" Silakan masukkan tanggal "maka jangan panggil server, jika tidak, silakan, "di mana dengan pola Mediator itu bisa mengatakan" Saya hanya sebuah tombol dan tidak memiliki urusan duniawi mengetahui tentang panel Foo dan label pada panel Bar, jadi saya hanya akan bertanya kepada mediator saya jika memanggil server tidak apa-apa sekarang. "
Atau, jika diterapkan menggunakan pola pengamat tombol akan berkata "Hei, pengamat (yang akan mencakup mediator), negara saya berubah (seseorang mengklik saya). Lakukan sesuatu tentang hal itu jika Anda peduli". Dalam contoh saya yang mungkin kurang masuk akal, tetapi kadang-kadang itu akan terjadi, dan perbedaan antara Pengamat dan Mediator akan lebih merupakan niat daripada perbedaan dalam kode itu sendiri.