Belajar Design Pattern – Singleton Pattern
Apa itu design pattern?
Sebelum mengenal design pattern, saya sering menggunakan berbagai macam teknik pemrograman, menggabungkan berbagai macam kode dari berbagai sumber untuk memecahkan suatu masalah. Hasilnya, aplikasi yang saya buat sangat tidak konsisten, terutama untuk kasus yang sama, saya dan programer lain bias menggunakan teknik OOP yang berbeda. Ketika partner saya resign dari projek, saya sangat kesulitan ketika harus melakukan maintanance aplikasi. Saya melihat banyak redundansi kode dimana-mana. Hanya untuk merubah 1 bagian kode, saya bisa membuka puluhan file di berbagai folder. Ini belum termasuk masalah-masalah yang timbul setelah implementasi.
Dalam job deskripsi saya sekarang, ada tuntutan untuk mengerti tentang design pattern. Dari sinilah saya mulai mengenal dan mempelajari tentang Design pattern.
Dari berbagai sumber di internet, Design pattern merupakan solusi yang digunakan untuk memecahkan suatu masalah yang sering terjadi dalam pembuatan aplikasi. Design pattern bukan merupakan desain akhir yang dapat di gunakan langsung dalam kode, tapi hanya merupakan template atau kerangka yang dapat digunakan dalam berbagai situasi. Solusi yang ditawarkan design pattern pun telah teruji kehandalannya.
Mengenai kategori dari design pattern dan macamnya silahkan googling aja. Disini saya ingin menulis tentang Creational Pattern – Singleton
Apa itu Singleton pattern?
Singleton design pattern adalah salah satu creational pattern yang digunakan untuk memastikan hanya ada satu instance yang aktif untuk digunakan secara bersama. Disini aplikasi hanya butuh satu objek. Meski digunakan atau didefinisikan berkali-kali tapi sumbernya hanya satu saja.
Cara membuatnya
- Definisikan semua konstruktor menjadi Protected atau Private. Dengan kata lain disini kita mencegah penggunaan kata New pada waktu membuat objek singleton.
- Definisikan sebuah Private Shared field di dalam class singleton
- Definisikan Public shared function di class singleton
- Tambahkan “Lazy initialisation” di dalam funtion tersebut.
- Kita hanya bisa membuat objek class singgleton ini melalui function yang didefinisikan di no.3
Contoh
Public Class SingletonClass
'step #2
Private Shared _singleton As SingletonClass
'step #1 untuk mencegah penggunaan New spt: Dim obj as New SingletonClass
Protected Sub New()
End Sub
'step #3
Public Shared Function GetInstance() As SingletonClass
'step #4 lazy initialisation
If _singleton Is Nothing Then
_singleton = New SingletonClass
End If
Return _singleton
End Function
Public Function Writetext() As String
Return "Text in singleton class"
End Function
End Class
Penerapannya. Buat projek console
Module Module1
Sub Main()
'construktor singgleton adalah protected, sehingga tidak bisa menggunakan "New"
Dim obj1 As SingletonClass = SingletonClass.GetInstance()
Dim obj2 As SingletonClass = SingletonClass.GetInstance()
If (obj1 Is obj2) Then
Console.WriteLine"Obj1 dan Obj2 adalah objek dengan instance yang sama")
End If
Console.ReadKey()
End Sub
End Module
Saya menggunakan singleton class ini untuk define culture yang digunakan dalam aplikasi. Karena menurut saya, culture ini sifatnya global di aplikasi. Di banyak page dalam satu applikasi culture selalu di define dari satu instance saja.
Happy coding
Posted on 10 Desember 2012, in Design Pattern and tagged Singleton. Bookmark the permalink. Tinggalkan Sebuah Komentar.
Tinggalkan Sebuah Komentar
Komentar (1)