Monday, November 28, 2016

Mediator Pattern

Mediator Pattern

Definisi
Mediator Pattern mendefinisikan sebuah objek yang mengontrol bagaimana satu set objek berinteraksi. Pattern ini termasuk dalam kategori behavioral karena dapat mengubah perilaku program yang berjalan.
Sebuah program biasanya terdiri dari sejumlah kelas. Jadi logika dan perhitungan didistribusikan diantara kelas-kelas ini. Dikarenakan oleh lebih banyak kelas yang dikembangkan di dalam program, terutama selama pemeliharaan, masalah komunikasi antara kelas-kelas ini dapat menjadi lebih kompleks. Hal ini membuat program lebih sulit untuk membaca dan memelihara. Selain itu, hal ini dapat membuat sulit untuk mengubah program, karena setiap perubahan dapat mempengaruhi kode dalam beberapa kelas lainnya.
Dengan menggunakan pola mediator, komunikasi antara objek dirumuskan dengan objek mediator. Suatu objek tidak lagi berkomunikasi secara langsung dengan satu sama lain, melainkan berkomunikasi melalui mediator. Jadi, kelas klien dapat menggunakan mediator untuk mengirim pesan ke klien lain, dan dapat menerima pesan dari klien lain melalui kelas mediator. Hal ini mengurangi ketergantungan antara komunikasi objek, sehingga menurunkan coupling.
Jadi, Mediator Pattern digunakan untuk mengurangi kompleksitas komunikasi antara beberapa objek atau kelas. Pattern ini menyediakan kelas mediator yang biasanya menangani semua komunikasi antara kelas yang berbeda dan mendukung pemeliharaan kode secara mudah dengan loose coupling.
Implementasi 
Contoh sederhana implementasi Mediator Pattern yaitu pada chat room, dimana beberapa user dapat mengirim pesan ke chat room dan chat room bertanggung jawab untuk menampilkan pesan ke seluruh user.
Langkah pertama adalah membuat 2 kelas, yaitu ChatRoom dan User. Objek User akan menggunakan metode ChatRoom untuk membagikan pesan. Kelas MediatorPattern akan menggunakan Objek User untuk menampilkan komunikasi diantara mereka.
class-diagram-chatroom
Class Diagram Chat Room
Berikut ini merupakan Source Code dari implementasi Mediator Pattern pada chat room dengan menggunakan Java.
1. Membuat kelas mediator (ChatRoom.java)
import java.util.Date;

public class ChatRoom {
   public static void showMessage(User user, String message){
      System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
   }
}

2. Membuat kelas user (User.java)
public class User {
   private String name;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public User(String name){
      this.name  = name;
   }

   public void sendMessage(String message){
      ChatRoom.showMessage(this,message);
   }
}

3. Gunakan objek User untuk menampilkan komunikasi diantara mereka (MediatorPattern.java)
public class MediatorPattern {
   public static void main(String[] args) {
      User robert = new User("Robert");
      User john = new User("John");

      robert.sendMessage("Hi! John!");
      john.sendMessage("Hello! Robert!");
   }
}

Output Implementasi dan Cara Menjalankan






Contoh Penggunaan Software – Industri
Selain implementasi pada chat room, contoh penggunaan Mediator Pattern dalam bidang industri adalah pada industri penerbangan, yaitu bandara. Menara kontrol di bandara mengaplikasikan Mediator Pattern dalam mengontrol penerbangan secara baik. Pilot pesawat yang hendak berangkat maupun mendarat di bandara akan berkomunikasi dengan menara kontrol daripada berkomunikasi dengan pesawat yang lain. Kendala seperti pesawat mana yang boleh untuk lepas landas maupun mendarat ditentukan dan dikontrol oleh menara kontrol.
mediator_example
 Penggunaan Mediator Pattern pada Menara Kontrol Bandara
Referensi
  1. https://en.wikipedia.org/wiki/Mediator_pattern
  2. https://www.tutorialspoint.com/design_pattern/mediator_pattern.htm
  3. https://sourcemaking.com/design_patterns/mediator

Fractal Tree