Определите основу алгоритма в операции, отложив некоторые шаги для подклассов. Метод шаблона позволяет подклассам переопределять определенные этапы алгоритма без изменения структуры алгоритма.
- Абстрактный класс: определяет абстрактные примитивные операции, которые конкретные подклассы определяют для реализации шагов алгоритма. Реализует шаблонный метод, определяющий каркас алгоритма. Метод шаблона вызывает примитивные операции, а также операции, определенные в абстрактном классе или в других объектах.
- Конкретный класс: реализует примитивные операции для выполнения специфичных для подкласса шагов алгоритма.
public class Main { public static void main(String[] args) { AbstractClass aA = new ConcreteClassA(); aA.templateMethod(); AbstractClass aB = new ConcreteClassB(); aB.templateMethod(); } } public abstract class AbstractClass { public abstract void primitiveOperation1(); public abstract void primitiveOperation2(); public void templateMethod() { primitiveOperation1(); primitiveOperation2(); } } public class ConcreteClassA extends AbstractClass { @Override public void primitiveOperation1() { System.out.println("ConcreteClassA.primitiveOperation1()"); } @Override public void primitiveOperation2() { System.out.println("ConcreteClassA.primitiveOperation2()"); } } public class ConcreteClassB extends AbstractClass { @Override public void primitiveOperation1() { System.out.println("ConcreteClassB.primitiveOperation1()"); } @Override public void primitiveOperation2() { System.out.println("ConcreteClassB.primitiveOperation2()"); } }
ConcreteClassA.primitiveOperation1() ConcreteClassA.primitiveOperation2() ConcreteClassB.primitiveOperation1() ConcreteClassB.primitiveOperation2()
eidherjulian61/дизайн-шаблоны
Основные шаблоны Проектирования
ид ・ 27 сентября ・ 1 минута чтения
Оригинал: “https://dev.to/eidher/template-method-pattern-4ngf”