Template Design Pattern

Salam pagi semua, kali ini saya tertarik untuk membahas salah satu design pattern yang sering saya gunakan dan juga ingin membagikannya kepada logbook reader. Sesuai Cover nya, design pattern yang akan kita bicarakan disini adalah Template Design Pattern. Ini sebenarnya design pattern yang sudah lama ada, tapi tetap exist sampe sekarang. Ok, mari kita pelajari kembali apa maksud dari Template Design Pattern ini.

skeletonTempat Design Pattern ini merupakan kerangka dari  sebuah algoritma dalam satu operasi. Nah, kerangka inilah yang nantinya dapat digunakan oleh subclassnya untuk membuat algoritma baru dengan operasi yang lain pula tanpa perlu merubah kerangka induknya.

Nah alasan logis kenapa Template Design Pattern ini dibuat, dikarena masalah yang muncul ketika terdapat kasus pada dua komponen berbeda yang memiliki kesamaan signifikan tapi melakukan operasi yang berbeda. Jadi, bisa saya bilang kata kunci dari design pattern ini adalah efisiensi, karena kita tidak perlu membuat kerangka yang sama untuk masing-masing komponen.

Template Design Pattern ini sering digunakan pada Framework. Nah setiap framework yang ada mengimplementasikan struktur domain dibawahnya yang dinamakan dengan “placeholders”. Jadi jika ada perubahan pada client kita hanya perlu mengganti strukur dibawahnya tanpa perlu mengganggu kerangkan utama.

Kita dapat mencontohkan struktur Template Design Pattern ini seperti gambar dibawah ini.

Contoh Struktur Template Design Pattern
Contoh Struktur Template Design Pattern, Source : https://sourcemaking.com/design_patterns/template_method

Nah jika kita mengkonversikan struktur diatas kedalam bentuk class, maka akan menjadi seperti ini:

Well semoga sharing singkat ini bermanfaat, oya feel free buat sharing atau koreksinya ya ..

Good People write good comments ..

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s