Metode Template Desain Pola

chmood
Maksud Metode TemplateDesain Pola

Mendefinisikan kerangka algoritma dalam sebuah operasi, menunda beberapa langkah untuk subclass klien. Metode Template memungkinkan subclass mendefinisikan kembali langkah-langkah tertentu dari algoritma tanpa mengubah struktur algoritma.

Kelas dasar menyatakan algoritma 'penampung', dan kelas turunan melaksanakan penampung.

Masalah

Dua komponen yang berbeda memiliki kesamaan yang signifikan, tetapi menunjukkan tidak ada penggunaan kembali interface atau pelaksanaan umum. Jika perubahan umum untuk kedua komponen menjadi perlu, duplikat usaha harus dikeluarkan.

Diskusi

Komponen desainer yang memutuskan langkah-langkah dari algoritma yang invarian (atau standar), dan yang varian (atau disesuaikan). Langkah-langkah invarian diimplementasikan dalam kelas dasar abstrak, sementara langkah-langkah varian yang baik diberikan implementasi default, atau tidak ada implementasi sama sekali. Langkah-langkah varian mewakili "kait", atau "placeholder", yang dapat, atau harus, diberikan oleh klien komponen dalam beton kelas turunan.

Komponen desainer mengamanatkan langkah yang diperlukan algoritma, dan urutan langkah-langkah, tetapi memungkinkan klien komponen untuk memperpanjang atau mengganti beberapa jumlah langkah-langkah.

Metode Template digunakan menonjol dalam kerangka. Setiap kerangka mengimplementasikan potongan invarian arsitektur sebuah domain, dan mendefinisikan "placeholder" untuk semua pilihan kustomisasi klien diperlukan atau menarik. Dengan demikian, kerangka menjadi "pusat alam semesta", dan kustomisasi klien hanya "batu ketiga dari matahari". Struktur pengendalian terbalik ini telah sayang berlabel "prinsip Hollywood," - "tidak menghubungi kami, kami akan menghubungi Anda".

Struktur



Pelaksanaan template_method () adalah: call step_one (), panggilan step_two (), dan panggilan step_three (). step_two () adalah "hook" Metode - placeholder. Hal ini dinyatakan dalam kelas dasar, dan kemudian didefinisikan dalam kelas turunan. Kerangka (reuse skala besar infrastruktur) menggunakan Metode Template banyak. Semua kode dapat digunakan kembali didefinisikan di kelas dasar kerangka, dan kemudian klien kerangka bebas untuk menentukan kustomisasi dengan menciptakan kelas turunan yang diperlukan.



Contoh

Template Metode mendefinisikan kerangka algoritma dalam sebuah operasi, dan menangguhkan beberapa langkah untuk subclass. Rumah pembangun menggunakan Metode Template ketika mengembangkan subdivisi baru. Sebuah subdivisi khas terdiri dari sejumlah rencana lantai dengan variasi yang berbeda tersedia untuk setiap. Dalam rencana lantai, pondasi, framing, pipa, dan kabel akan sama untuk setiap rumah. Variasi diperkenalkan pada tahap selanjutnya pembangunan untuk menghasilkan lebih banyak jenis model.

Contoh lain: rutinitas sehari-hari dari seorang pekerja.



Periksa daftar

Memeriksa algoritma, dan memutuskan langkah-langkah yang standar dan langkah-langkah yang khas masing-masing kelas saat ini.

Mendefinisikan kelas dasar abstrak baru untuk menjadi tuan rumah "tidak menghubungi kami, kami akan menghubungi Anda" kerangka.

Pindahkan shell dari algoritma (sekarang disebut "metode Template") dan definisi semua langkah standar untuk kelas dasar baru.

Mendefinisikan sebuah tempat atau metode "hook" di kelas dasar untuk setiap langkah yang membutuhkan banyak implementasi yang berbeda. Metode ini dapat meng-host implementasi standar - atau - dapat didefinisikan sebagai abstrak (Jawa) atau murni virtual (C ++).

Memanggil metode kait (s) dari metode Template.

Masing-masing kelas yang ada menyatakan sebuah "adalah-sebuah" hubungan dengan kelas dasar baru abstrak.

Hapus dari kelas yang sudah ada semua detail implementasi yang telah dipindahkan ke kelas dasar.

Satu-satunya rincian yang akan tetap berada di kelas yang ada akan menjadi rincian pelaksanaan khas masing-masing kelas turunan.

Aturan praktis


Strategi seperti Metode Template kecuali dalam rincian nya.

Metode Template menggunakan warisan untuk bervariasi bagian dari algoritma. Strategi menggunakan delegasi untuk beragam seluruh algoritma.

Strategi memodifikasi logika objek individu. Metode Template memodifikasi logika seluruh kelas.

Metode pabrik adalah spesialisasi Metode Template.

Komentar