Creational
1. Object Pool
merupakas set objek yang diinisialisasi dan siap digunakan. Klien akan memanggil objek yang sudah
diinisialisasi di pool dan melakukan aksi terhadap objek yang sudah dipanggil. Ketika klien sudah selesai
melakukan aksi, objek akan dikembalikan ke pool. Objek pool memberikan bantuan yang signifikan
untuk mengurangi biaya inisialisasi yang tinggi. Hal ini karena penginisialisasian objek sudah dilakukan
di awal dan objek bisa dipakai lagi setelah digunakan sehingga biaya lebih hemat.
2. Lazy Initialization
Lazy initialization adalah taktik untuk menunda pembentuka objek, perhitungan nilai objek, atau
beberapa proses yang 'mahal' sampai saat pertama objek itu dibutuhkan.
Biasanya lazy initialization dipenuhi dengan mengelola bendera indikasi ketika proses akan dilakukan.
Bendera indikasi digunakan untuk menandai objek bila akan digunakan.
/**
* Lazy Factory method, gets the Fruit instance associated with a
* certain type. Instantiates new ones as needed.
* @param type Any string that describes a fruit type, e.g. "apple"
* @return The Fruit instance associated with that type.
*/
public static synchronized Fruit getFruit(String type) {
if(!types.containsKey(type)) {
types.put(type, new Fruit(type)); // Lazy initialization
}
return types.get(type);
}
}
Structural
The object adapter pattern expressed in UML. The adapter hides the adaptee's interface from the client.
2. Bridge Patern
Bridge pattern adalah design pattern yang memisahkan abstraksi dari implementasinya sehingga
keduanya bisa berdiri sendiri. Bridge pattern menggunakan enkapsulasi, agregasi, dan bisa
menggunakan inheritance untuk memisahkan kewajiban ke masing-masing kelas.
Behavorial
1. Command Pattern
Command pattern adalah design pattern yang objeknya digunakan untuk menampilkan dan enkapsulasi
semua informasi yang dibutuhkan untuk memanggil method di waktu kemudian. Informasinya terdiri
dari nama method, objek yang memiliki method, dan nilai parameter method.
2. Interpreter Pattern
interpreter pattern adalah design pattern yang partikular. Interpreter menspesifikasikan cara
mengevaluasi kalimat dalam sebuah bahasa. Ide dasarnya adalah memiliki kelas untuk tiap simbol
(terminal atau nonterminal) di bahasa komputer yang terspesialisasi.