WISHMASTER THE INSPIRATION

See also: Other Geeks@INDC

Implement Singleton

Singleton…have you ever hear it? Yes, it’s kind of design pattern. Actually I have just apply it in my assignment and successfully run as I wish :). Do you know design pattern? Design pattern is kind of patterns that usually happen when you develop object-oriented programming. It’s kind of an algorith, not an implementation code. Singleton is one of them, the functionality is to prevent class was defined more than once. In case, I defined a new object form class a, it will allocate memory for class a object. In others time, I’d like to create a new one in another screen, it will allocate memory for class a object too. What if I create object from class a in a double double ? So pure if I become the memory :)

Below code is an implementation of singleton in VB .Net.

#RegionDesign Pattern Singleton
    Private Shared instance_Dgr As cDigram

    Protected Sub New()
    End Sub

    Public Shared Function getInstance_Digram() As cDigram
        If instance_Dgr Is Nothing Then
            instance_Dgr = New cDigram
        End If

        Return instance_Dgr
    End Function

#End Region

In your associated class, you could put your code as below to instantiate a new object.

Private oDigram as cDigram
oDigram = cDigram.getInstance_Digram

I’m happy finally I could implement it Wink
Share this post: | | | |

Comments

yulian said:

Bukannya klo buat singleton class maka constructornya harus private?agar ga bisa diakses dari luar...cmiiw...klo protected kan masih bisa diakses tuh dari subclassnya.

# March 6, 2008 3:20 PM

andriyana said:

Sangat Serius dan Sangat Mendesak:

Dicari 10-15 Programmer Java dengan berbagai Level Keahlian untuk bekerja di PT Imocha (www.imocha.com.my). Suatu perusahaan Teknologi Informasi Malaysia. Kandidat yang diterima akan bekerja di BOGOR, JAWA BARAT (Tepatnya di Jalan Pajajaran Bogor). Perusahaan Imocha Malaysia membuka cabang unit produknya di BOGOR.

Tanggung Jawab Umum:

Koding dalam Java menjadi tugas sehari-hari. Area Pengembangan mencakup Teknologi Cutting-Edge seperti: JEE5, GlassFish, Struts2, Teknologi JAX, Apache Service MIx (ESB) dll.

Berpartisipasi dalam pendesainan kebutuhan fungsi dan kebutuhan teknis.

Memberikan ide-ide cemerlang pada tim.

Dapat bekerja dalam deadline yang ketat namun tetap memelihara kualitas software.

Tanggung Jawab Programmer Senior (Gaji Rp 6jt+Medical+Jamsostek):

Memimpin satu atau lebih proyek atau produk pengembangan software.

Bekerja dengan Manajer Produk  untuk memastikan semua keperluan dan persyaratan pengembangan terpenuhi.

Secara terus menerus melakukan penelitian dan evaluasi terhadap teknologi yang akan membawa perubahan di masa depan pada bidang software.

Membuat keputusan terbaik dengan pendekatan teknik untuk kebutuhan pelanggan/bisnis dengan mempertimbangkan sisi performa, realibilitas dan skalabilitas.

Tanggung Jawab Programmer Intermediate (Gaji Rp 4,5jt+Jamsostek+Medical):

Mengembangkan produk perangkat lunak dengan 1 atau lebih programmer di dalam tim.

Bisa membuat aplikasi dari scratch atau dari aplikasi yang sudah ada.

Melakukan diagnosa pada koding dan memberikan bantuan teknis dibidang pemrograman pada tim pendukung pada saat aplikasi harus LIVE.

Tanggung Jawab Programmer FreshGraduate (Gaji Rp 3jt+Jamsostek+Medical):

Dengan modal penguasaan OOP, dapat belajar secara cepat dan mandiri mengenai teknologi yang dipakai oleh perusahaan.

Terus menerus melakukan pembelajaran diri.

Mengembangkan produk perangkat lunak dengan 1 atau lebih programmer di dalam tim.

Bisa membuat aplikasi dari scratch atau dari aplikasi yang sudah ada.

Persyaratan(HARUS):

Berbakat dan Memiliki hasrat pada dunia pengembangan perangkat lunak

Fast Learner & Self Starter

Berpengalamn 3-4 tahun dalam pengkodean Java berskala enterprises (posisi senior programmer).

Memahami framework J2EE (khususnya Struts 2), layar persistence (JPA/Hibernate), teknologi SOAP, webservice, GlassFish dan MAVEN.

Bisa berbahasa Inggris minimal pasif.

Nilai Tambah:

    Memahami teknologi cutting-edge seperti : JEE5, EJB3, Apache CXF, Service  Mix dan Spring.              

Paham Oracle.

Peserta yang berminat harap mengirimkan CV via email ke: andriyana.the.mefax@gmail.com sebelum tanggal 13 Maret. Peserta bersedia bekerja di Bogor!!!! atau kontak HP: Andriyana 0859 2052 1972

# March 7, 2008 4:17 PM

arifin_ts said:

hhmm.. begitu ya?

thanks for correcting me :)

ak coba explore and recompile lagi de singletonnya, tembus ga itu protectednya...

# March 7, 2008 9:52 PM

andriyadi said:

Yup...Constructor should be private in Singleton pattern.

# March 8, 2008 5:45 AM

Jimmy Chandra said:

Be careful if you are using that particular implementation when using it in a multithreading environment.  It's not threadsafe.

There is an even simpler implementation of Singleton that is guaranteed threadsafe... like so:

Public Class MySingleton

 Public Shared ReadOnly Instance As MySingleton = New MySingleton()

 Private Sub New()

 End Sub

 Public ReadOnly Property Test As String

   Get

     Return "Hello, World!"

   End Get

 End Property

End Class

# March 10, 2008 2:04 PM

paulus said:

kyknya itu blm cukup thread safe deh, coba yg ini:

public sealed class Singleton

{

   static readonly Singleton instance=

         new Singleton();

   // Explicit static constructor to tell C# compiler

   // not to mark type as beforefieldinit

   static Singleton()

   {

   }

   Singleton()

   {

   }

   public static Singleton Instance

   {

       get

       {

           return instance;

       }

   }

}

# March 14, 2008 11:25 AM