RSS

Creational Design Pattern

Kali ini akan saya berikan dua contoh creational design pattern, yaitu Singleton Pattern dan Object Pool Pattern.
1.    Singleton Pattern
Tujuan
Memastikan Hanya satu instance dari class dibuat.
Memberikan titik global akses ke objek.
Motivasi
Terkadang penting untuk memiliki hanya satu instance untuk satu class. Sebagai contoh, dalam suatu sistem harus ada hanya satu window manager (atau hanya sistem file atau spooler cetak). Biasanya Singleton digunakan untuk manajemen terpusat dari sumber daya internal atau eksternal dan mereka memberikan titik akses global untuk diri mereka sendiri.
Singleton Pattern adalah salah satu pola desain paling sederhana: melibatkan hanya satu kelas yang bertanggung jawab untuk instantiate sendiri, memastikan tidak terdapat lebih dari satu instance, dalam waktu yang sama ia menyediakan titik akses global ke instance tersebut. Dalam hal ini instance yang sama dapat digunakan dari mana-mana, karena tidak mungkin untuk memanggil constructor secara langsung setiap waktu.
Struktur











Contoh Implementasi


class Singleton
{
        private static Singleton instance;
        private Singleton()
        {
               ...
        }

        public static synchronized Singleton getInstance()
        {
               if (instance == null)
                       instance = new Singleton();

               return instance;
        }
        ...
        public void doSomething()
        {
               ...    
        }
}



Get instance method digunakan juga untuk menyediakan titik global akses ke objek dan dapat digunakan dengan cara sebagai berikut :
Singleton.getInstance().doSomething();

2.    Object Pool Pattern
Tujuan
Menggunakan kembali dan membagi objek-objek yang memiliki cost tinggi untuk diciptakan
Motivasi
Kinerja kadang dapat menjadi  isu utama dalam pengembangan perangkat lunak dan penciptaan objek (Instansiasi class)dan  merupakan langkah yang memiliki cost tinggi. Sedangkan Prototype pattern membantu dalam meningkatkan kinerja dengan kloning obyek, Object Pool pattern menawarkan mekanisme untuk menggunakan kembali benda-benda yang ber cost tinggi untuk dibuat tersebut.
Klien dari objek
tersebut akan merasa seperti mereka adalah pemilik dari layanan walaupun layanan ini dibagi di antara banyak klien lain.
Struktur









Contoh Implementasi
Mari kita ambil contoh dari koneksi database. Sudah jelas bahwa membuka terlalu banyak koneksi dapat
mempengaruhi kinerja untuk beberapa alasan: 
- Membuat sambungan adalah operasi yang mahal. 
- Ketika ada terlalu banyak koneksi terbuka, dibutuhkan waktu lebih lama untuk membuat yang baru dan
  server database akan menjadi kelebihan beban. 
Berikut adalah contoh gambar untuk Implementasi object pool pattern dalam mengelola koneksi dan 
menyediakan cara untuk menggunakan kembali dan membagi obyek. Hal ini juga dapat membatasi jumlah
maksimum obyek yang dapat dibuat.









Sumber : Diterjemahkan dari http://www.oodesign.com/
 Next :: Behavioral Design Pattern

0 komentar:

Posting Komentar

© 2009 - Knowledge of YASHA | Design: Choen | Pagenav: Abu Farhan Top