Template Pattern Behavioral Pattern Template Method D A
Template Pattern
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Definisi Mendefinisikan kerangka algoritma dalam sebuah operasi Template Method memungkinkan subclass mendifinisikan kembali langkah-langkah tertentu dari algoritma tanpa mengubah struktur algoritma Base class mendefinisikan algoritma mengimplementasikan placeholders dan class turunannya
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Analoginya adalah seperti template untuk pembuatan proposal, jika kita ingin membuat sebuah proposal maka akan terdapat template tergantung dengan tujuan pembuatan proposal tersebut seperti template daftar isi, template penulisan bab, template kutipan, dsb dan template tersebut bersifat general. Artinya adalah template hanya memberi contoh atau memberi kerangka untuk hal umum pada proposal tersebut dan penulis dapat menambahkan hal yang spesifik pada template tersebut dan penulis juga dapat hanya mengambil beberapa template tersebut dan mengeditnya atau tidak menggunakan template tersebut. 3
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Analogi Coffee Recipe • Boil some water • Brew coffee in boiling water • Pour coffee in cup • Add sugar and milk Tea Recipe • Boil some water • Steep tea in boiling water • Pour tea in cup • Add lemon 4
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Analogi 5
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Implementasi Perancang komponen / developer bertugas memutuskan langkah-langkah dari algoritma yang invarian (tetap) dan yang varian (tidak tetap). Langkah-langkah invarian diimplementasikan dalam abstract base class, ketika langkah-langkah varian diberikan implementasi default ataupun tidak diimplementasikan. Perancang komponen / developer memberikan langkah yang diperlukan seperti algoritma dan urutan langkah-langkahnya, tetapi memungkinkan client komponen untuk memperpanjang atau mengganti beberapa jumlah langkah.
Behavioral Pattern Template Method D A I S C Definisi Analogi Implementasi Struktur Code Struktur Implementasi template method terdapat pada UML diagram disamping. Dimana untuk method template. Method() akan memanggil method step. One(), step. Two(), dan step. Three(). Method step. Two() adalah method pengait, dimana method ini dideklarasikan pada base class dan kemudian didefinisikan dalam class turunannya yaitu class Application. Class. One dan class Application. Class. Two. Template Method banyak digunakan dalam framework. Tiap framework mengimplementasikan potongan invarian arsitektur sebuah domain dan mendefinisikan placeholder untuk semua opsi kustomisasi client yang diperlukan.
Game. java Cricket. java public abstract class Game { public class Cricket extends Game { abstract void initialize(); abstract void start. Play(); @Override abstract void end. Play(); void end. Play() { System. out. println("Cricket Game Finished!"); } //template method public final void play(){ @Override void initialize() { //initialize the game System. out. println("Cricket Game Initialized! Start playing. "); initialize(); } //start game @Override start. Play(); void start. Play() { System. out. println("Cricket Game Started. Enjoy the game!"); //end game } end. Play(); } } }
Football. java public class Football extends Game { @Override void end. Play() { Template. Pattern. Demo. jav a public class Template. Pattern. Demo { public static void main(String[] args) { System. out. println("Football Game Finished!"); } Game game = new Cricket(); game. play(); System. out. println(); game = new Football(); game. play(); @Override void initialize() { System. out. println("Football Game Initialized! Start playing. "); } @Override void start. Play() { } System. out. println("Football Game Started. Enjoy the game!"); } } }
Output • Cricket Game Initialized! Start playing. • Cricket Game Started. Enjoy the game! • Cricket Game Finished! • Football Game Initialized! Start playing. • Football Game Started. Enjoy the game! • Football Game Finished!
Soal No. 1 1. 2. 3. 4. 5. Buat 1 contoh studi kasus template method pattern Buat UML dari soal no. 1 Buat kode program dari soal no. 2 Waktu pengerjaan kode program: 15 menit Demo kode program di depan
- Slides: 12