Pola metode template didefinisikan sebagai:
Kerangka atau langkah algoritma didefinisikan dalam suatu metode, dan beberapa langkah ditunda ke subkelas untuk implementasi. Metode template memungkinkan subclass untuk mendefinisikan kembali beberapa langkah dalam algoritma tanpa mengubah struktur algoritma.
Metode template mendefinisikan urutan proses operasi di kelas dasar, yang dapat memastikan bahwa langkah -langkah dilakukan secara berurutan. Beberapa implementasi spesifik dari beberapa langkah telah dinyatakan di kelas dasar, dan implementasi spesifik dari beberapa langkah perubahan diserahkan kepada subkelas untuk diimplementasikan, sehingga menunda beberapa langkah ke dalam subkelas. Salah satu manfaat terbesar dari metode templat adalah bahwa ia dapat menetapkan proses bisnis untuk dieksekusi dalam urutan ketat tertentu, mengendalikan langkah -langkah eksekusi seluruh algoritma.
Metode ini mendefinisikan algoritma ke dalam satu set langkah, di mana semua langkah yang menginginkan subkelas melakukan implementasi khusus didefinisikan sebagai metode abstrak. Karakteristik kelas dasar abstrak adalah bahwa metode templat umumnya diatur ke final, yang mencegah subkelas menimpa langkah -langkah algoritma, menerapkan beberapa operasi atau langkah yang sama secara langsung di kelas dasar, dan menetapkan beberapa langkah yang berubah menjadi abstrak dan subkelas untuk menyelesaikan.
Contoh Implementasi Java
Diagram kelas:
/ *** Templat proses bisnis, menyediakan kerangka dasar*/ kelas abstrak publik Basetemplate {public abstrak void part1 (); public abstrak void part2 (); abstrak publik void part3 (); // Untuk hasil eksperimen yang ketat, final tidak dapat ditulis ulang menggunakan final void useTemplateMethod () {part1 (); part2 (); part3 (); }} / ** * Metode Implementasi Templat 1 */ Kelas Publik TemplateMethod memperluas Basetemplate {@Override public void part1 () {System.out.println ("Templat Metode 1"); } @Override public void part2 () {System.out.println ("Metode Template 2"); } @Override public void part3 () {System.out.println ("Metode Template 3"); }} / ** * Metode Implementasi Template 2 * @Author Stone * */ Kelas Publik TemplateMethod2 Memperluas Basetemplate {@Override public void part1 () {System.out.println ("Metode Template 11"); } @Override public void part2 () {System.out.println ("Metode Template 22"); } @Override public void part3 () {System.out.println ("Metode Template 33"); }} tes kelas publik {public static void main (string [] args) {baseTemplate tm = new templateMethod (); tm.usetemplatemethod (); System.out.println (""); Basetemplate TM2 = TemplateMeThOD2 baru (); tm2.usetemplatemethod (); }}Mencetak:
Metode Templat 1 Metode Templat 2 Metode Templat 3 Metode Templat 11 Metode Templat 22 Metode Templat 33