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.
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.
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
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.
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.
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.
0 komentar:
Posting Komentar