Skip to content

Latest commit

Β 

History

History
71 lines (52 loc) Β· 1.36 KB

File metadata and controls

71 lines (52 loc) Β· 1.36 KB

πŸ“ Template Method

Category: Behavioral

πŸ“– Description

The Template Method pattern defines the skeleton of an algorithm, deferring some steps to subclasses.

πŸ› οΈ Purpose: Allow subclasses to redefine specific steps of an algorithm.


πŸ”§ Structure

classDiagram
    class AbstractClass {
        +templateMethod()
        +primitiveOperation1()
        +primitiveOperation2()
    }
    class ConcreteClass

    AbstractClass <|-- ConcreteClass
Loading

πŸ’» Java 21 Example

Abstract Class

public abstract class AbstractClass {

    public final void templateMethod() {
        primitiveOperation1();
        primitiveOperation2();
    }

    protected abstract void primitiveOperation1();
    protected abstract void primitiveOperation2();
}

Concrete Class

public final class ConcreteClass extends AbstractClass {
    @Override
    protected void primitiveOperation1() {
        System.out.println("Primitive Operation 1");
    }

    @Override
    protected void primitiveOperation2() {
        System.out.println("Primitive Operation 2");
    }
}

Usage

public final class Demo {
    public static void main(final String[] args) {
        AbstractClass obj = new ConcreteClass();
        obj.templateMethod();
    }
}