Mengenal Design Pattern: Singleton Pattern
Beberapa hari yang lalu kita sudah membahas tentang Observer Pattern, sekarang diartikel ini kita akan membahas tentang Singleton, mulai dari definisinya, sampai contoh kasus penggunaan pattern ini dan tidak lupa contoh kode programnya.
Apa itu Singleton Pattern?
Menurut situs Refactoring.guru Singleton adalah kreasi design pattern yang memastikan bahwa sebuah kelas hanya akan memiliki 1 instance, dan untuk meng-akses kelas tersebut kita hanya bisa mengaksesnya lewat 1 instance yang sudah terbuat sebelumnya.
Nah dari definisi diatas teman-teman sudah mulai ada gambaran nih singleton itu seperti apa, tapi biar lebih jelas lagi, bisa dilihat pada structure gambar dibawah ini.
ok sudah, gitu aja. Happy ending!.
.
.
.
lol, just kidding.
Sekarang mungkin teman-teman sudah mengerti tentang apa itu singleton, tapi pasti teman-teman pengen tahu juga nih contoh kasus seperti apa sih kita mengimplementasikan design pattern singleton ini? berikut adalah contoh kasusnya.
Contoh Kasus Penggunaan Singleton Pattern
Salah satu contohnya adalah koneksi ke database, bayangkan kita mempunyai 1 kelas, dimana kelas itu berisi fungsi untuk koneksi ke database.
Setiap kali kita ingin melakukan CRUD (Create, Read, Update, Delete) kita pasti akan membuat instance baru dari kelas yang kita buat sebelumnya, baru kemudian kita melakukan action CRUD tersebut.
Nah permasalahannya ketika program kita sudah semakin kompleks dan jumlah pengunjungnya banyak, besar kemungkinan program kita akan menjadi lambat, kenapa? karena setiap kali kita melakukan CRUD itu pasti akan membuat koneksi baru, dan ketika dicek di database ternyata jumlah koneksinya jadi banyak sekali.
Jadi solusinya bisa menerapkan singleton pattern, jadi buat 1 instance saja dan itu akan dipakai berulang-ulang kali sesuai dengan kebutuhan.
Contoh kode program implementasi Singleton
Cukup sekian artikel kali ini, kalau ada masukkan atau saran bisa ditulis dikolom komentar, semoga bermanfaat.
Sumber:
https://refactoring.guru/design-patterns/singleton
https://refactoring.guru/design-patterns/singleton/typescript/example
https://youtu.be/mkE3Nd4nwIM