Mengenal Singleton pada Design Pattern


 Sering kita dengar istilah term/istilah design pattern. "coba pelajari design pattern ini buat menyelesaikan problem ini" kadang terdengar kalimat tersebut dari yang lebih berpengalaman dan atau lebih senior. Kebetulan teman di kantor sedang membahas dan rame tentang salah satu design pattern yaitu singleton yang sering digunakan dalam hal config dan log (tidak menutup kemungkinan penggunaan yang lain). Jadi mari kita bahas mengenai design pattern singleton.

Apa itu design pattern 

Design pattern adalah sebuah metode yang dibuat untuk membantu para pengembang aplikasi (developer) untuk menemukan solusi dari masalah-masalah umum yang biasa muncul pada saat pengembangan perangkat lunak (software). Masalah-masalah umum ini akan membentuk suatu pola (pattern) begitu juga solusinya. Namun, design pattern tidak bisa langsung serta merta digunakan karena pada dasarnya design pattern berisikan template dari pola tersebut.

Apa itu singleton design pattern

Salah satu bentuk design pattern adalah creational design pattern yang menitik beratkan pada pola (pattern) pembuatan dan atau deklarasi object / instance. Harapannya object yang kita buat menjadi lebih mudah digunakan. Beberapa bahkan menuliskan concern pada creational adalah bagaimana object dienkapsulasi, digabungkan serta digunakan.

Salah satu bagian dari creational adalah Singleton. Ini yang saya tangkap dari obrolan dengan teman mengenai apa itu design pattern singleton. Yaitu design pattern yang hanya menginisiasi 1 (satu) instance yang dipakai secara global. Instance sendiri adalah object yang dibuat dari sebuah class. Semisal Hewan ayam = new Hewan(). ayam adalah instance dari class Hewan.

Ada 2 bentuk singleton berdasarkan kapan dia dibuat (inisiasi / instantiation):

A. Early instantiation 

Yaitu cara pembuatan object singleton yang sudah diinisiasi dari awal / load time.Tipe ini tidak perlu melakukan null check, karena object sudah diinisiasi. Pada bahasa pemrograman Java penggunaan static disertai inisiasi objectnya bisa menjadi contoh tipe ini. Silahkan lihat pada contoh code di bawah

contoh code early singleton


B. Lazy instantiation : 

Berbeda dengan early yang sudah dibuat ketika object dideklarasikan, lazy hanya akan membuat object pada saat dibutuhkan saja. impactnya adalah perlu melakukan check apakah object tersebut null atau tidak. Jika null maka lakukan instansiasi untuk object tersebut.

contoh code lazy singleton


Kenapa kita menggunakan singleton

ada beberapa justifikasi kenapa kita menggunakan singleton, diantaranya adalah sebagai berikut :

  1. Memastikan hanya ada 1 instance saja ketika program berjalan,
  2. Karena hanya terdapat 1 instance maka secara tidak langsung membuat memory menjadi lebih hemat,
  3. Memberi kemudahan dalam mengakses object / instance tersebut.
  4. dll

Contoh penggunaan umum

Singleton banyak digunakan dalam hal konfigurasi dan logging. Semisal pada konfigurasi file resource database apa yang digunakan sangat terbayang kalau setiap saat kita harus membuat ulang konfigurasi tersebut. Untuk Logging banyak digunakan dengan tujuan log dapat ditampung pada satu tempat dan bersifat pasti.

Referensi

Sekian dari saya kurang lebihnya saya mohon maaf, jangan lupa untuk berkomentar dan dibagikan jika dirasa bermanfaat. (Sufyan)

Posting Komentar untuk "Mengenal Singleton pada Design Pattern"