Шаблон метода шаблона определяется как:
Скелет или шаг алгоритма определяются методом, и некоторые шаги отложены на подклассы для реализации. Метод шаблона позволяет подклассам переопределить некоторые шаги в алгоритме без изменения структуры алгоритма.
Метод шаблона определяет последовательность процесса работы в базовом классе, что может гарантировать, что шаги выполняются в последовательности. Некоторые конкретные реализации некоторых шагов были объявлены в базовом классе, и конкретные реализации некоторых изменяющихся шагов передаются на подкласс для реализации, что задерживает некоторые шаги в подкласс. Одним из самых больших преимуществ метода шаблона является то, что он может установить бизнес -процесс для выполнения в определенном строгом порядке, контролируя шаги выполнения всего алгоритма.
Этот метод определяет алгоритм в набор шага, в которых все шаги, которые хотят, чтобы подкласс выполнял пользовательскую реализацию, определяются как абстрактные методы. Характеристика абстрактных базовых классов заключается в том, что метод шаблона, как правило, устанавливается в конечном счете, что предотвращает перезапись подкласса, реализуя некоторые из тех же операций или шагов непосредственно в базовом классе и установить некоторые из изменяющихся шагов для абстрактного и подкласса для завершения.
Пример реализации Java
Классовая диаграмма:
/ *** Шаблон бизнес -процесса, предоставление основной основы*/ public Abstract Class Basetemplate {public rastic void part1 (); Public Abstract void Part2 (); Public Abstract void Part3 (); // Чтобы строго экспериментальные результаты, финал не может быть переписан с использованием окончательного void usetemplatemethod () {part1 (); part2 (); Часть3 (); }} / ** * Метод реализации шаблона 1 */ public Class Templatemethod Extens Basetemplate {@Override public void part1 () {System.out.println ("Метод шаблона 1"); } @Override public void part2 () {System.out.println ("Метод шаблона 2"); } @Override public void part3 () {System.out.println ("Метод шаблона 3"); }} / ** * Метод реализации шаблона 2 * @author Stone * */ public Class Templatemethod2 Extens Basetemplate {@Override public void part1 () {System.out.println ("Метод шаблона 11"); } @Override public void part2 () {System.out.println ("Метод шаблона 22"); } @Override public void part3 () {System.out.println ("Метод шаблона 33"); }} открытый тест класса {public static void main (string [] args) {basetemplate tm = new Templatemethod (); tm.usetemplatemethod (); System.out.println ("" "); Basetemplate tm2 = new Templatemethod2 (); tm2.useTemplateMethod (); }}Печать:
Метод шаблона 1 Метод шаблона 2 Метод шаблона 3 Метод шаблона 11 Метод шаблона 22 Метод шаблона 33