Рубрики
Без рубрики

Шаблон Метода Шаблон

Определите основу алгоритма в операции, отложив некоторые шаги для подклассов. Шаблон Соблюден… Помеченный поведенческими, шаблонными, java, шаблонами проектирования.

Определите основу алгоритма в операции, отложив некоторые шаги для подклассов. Метод шаблона позволяет подклассам переопределять определенные этапы алгоритма без изменения структуры алгоритма.

  • Абстрактный класс: определяет абстрактные примитивные операции, которые конкретные подклассы определяют для реализации шагов алгоритма. Реализует шаблонный метод, определяющий каркас алгоритма. Метод шаблона вызывает примитивные операции, а также операции, определенные в абстрактном классе или в других объектах.
  • Конкретный класс: реализует примитивные операции для выполнения специфичных для подкласса шагов алгоритма.
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”