Minggu, 27 November 2016

Design Pattern - Singleton Pattern

Definisi

Singleton pattern adalah salah satu pola desain sederhana di Java. Jenis pola desain ini berada di bawah pola penciptaan sebagai pola yang memberikan salah satu cara terbaik untuk membuat sebuah objek.

Pola ini melibatkan satu kelas yang bertanggung jawab untuk membuat sebuah objek sambil memastikan bahwa hanya objek tunggal yang akan dibuat. Kelas ini menyediakan cara untuk mengakses hanya objeknya yang dapat diakses langsung tanpa perlu instantiate objek dari kelas.

Singleton pattern diimplementasikan dengan membuat class dengan method yang membuat instance class yang baru jika instance belum ada. Jika instance sudah ada maka akan diarahkan object yang telah ada. Untuk mencegah object tidak instankan berkali-kali maka constructor dirubah menjadi private atau protected, protected constructor bisa dipanggil oleh subclass dan class yang berada dalam satu package, jika private constructor maka hanya bisa dipanggil oleh class itu sendiri tetapi itu berarti class tersebut tidak bisa di subclass-kan



Implementation

Kita akan membuat kelas SingleObject. Kelas SingleObject memiliki konstruktor private dan memiliki static instance itu sendiri.

Kelas SingleObject menyediakan metode statis untuk mendapatkan static instance untuk outside world. SingletonPatternDemo, kelas demo akan menggunakan kelas SingleObject untuk mendapatkan objek SingleObject.



Step 1

Buat Singleton Class
public class SingleObject {

   //create an object of SingleObject
   private static SingleObject instance = new SingleObject();

   //make the constructor private so that this class cannot be
   //instantiated
   private SingleObject(){}

   //Get the only object available
   public static SingleObject getInstance(){
      return instance;
   }

   public void showMessage(){
      System.out.println("Hello World!");
   }
}

Step 2
Dapatkan satu-satunya obyek dari singleton class
public class SingletonPatternDemo {
   public static void main(String[] args) {

      //illegal construct
      //Compile Time Error: The constructor SingleObject() is not visible
      //SingleObject object = new SingleObject();

      //Get the only object available
      SingleObject object = SingleObject.getInstance();

      //show the message
      object.showMessage();
   }
}

Step 3
Cetak output


Penggunaan

Contoh penggunaan singleton pattern adalah pada kasus aplikasi yang menggunakan MDI (multiple document interface).

Pada aplikasi MDI ketika kita tidak menerapkan singleton maka ketika membuka sebuah form child dengan menekan sebuah menu, yang terjadi adalah penciptaan sebuah objek dari form child yang bersangkutan setiap kali tombol ditekan. Jika kita menekan menu sebanyak 5 kali maka akan ada 5 form yang sama. Tentunya yang diinginkan hanya ada 1 form.


Referensi : 
  1. https://www.tutorialspoint.com/design_pattern/singleton_pattern.html
  2. http://www.vincehuston.org/dp/singleton.html
  3. http://www.newthinktank.com/videos/design-patterns-tutorial/
  4. http://agung-setiawan.com/implementasi-nyata-singleton-pattern/

0 komentar:

Posting Komentar

luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com