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 ..

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s