Berkenalan dengan Singleton Pattern

[S]ingleton adalah sebuah pattern dalam pemrograman yang bertujuan agar sebuah kelas hanya dapat memiliki sebuah instance, tidak seperti pada kelas yang tidak menerapkan pattern ini dimana bisa ada banyak instance yang tercipta.

Singleton

Hanya terdapatnya satu instance dari sebuah kelas sangat bergantung dari bagaimana cara untuk membuat instance tersebut. Jika biasanya kita membuat sebuah instance dengan menggunakan new, maka tidak demikian untuk singleton.

Mari langsung saja ke kodenya. Berikut adalah kode kelas yang menerapkan pattern Singleton

Constructor dari kelas di atas adalah private, hal ini dimaksudkan agar kelas ini tidak bisa di-instance-kan menggunakan new melalui constructor-nya

Sebagai ganti untuk membuat instance maka dibuat method GetInstance(), didalamnya dilakukan pengecekan apakah instance bernilai null atau tidak, jika null maka buat instance baru jika tidak null yang berarti instance sudah ada maka langsung saja dikembalikkan, tidak perlu membuat instance baru.

Pengecekan di atas memastikan bahwa hanya akan ada satu instance dari kelas tersebut, tidak lebih. Jadi seperti ini cara membuat instance-nya

Ngomong-ngomong bagaimana membuktikan bahwa kelas yang menerapkan singleton benar-benar hanya selalu memiliki satu instance?. Bisa di cek menggunakan operator == . Seperti ini contohnya

Terbukti kan? 😀

Setelah paham bagaimana cara kerja dan membuat kelas singleton seharusnya timbul pertanyaan : “Kenapa sebuah kelas perlu hanya boleh memiliki satu instance?”. Untuk menjawabnya akan saya tunjukkan pada tulisan selanjutnya 😉

Semoga bermanfaat

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *