Design Pattern - Template Method

JunMyung Lee·2024년 7월 29일
0

디자인패턴

목록 보기
3/3

설명

Template Method 패턴은 상위 클래스에서 알고리즘의 구조를 정의하고, 하위 클래스에서 알고리즘의 특정 단계를 구현하도록 하는 디자인 패턴입니다. 이 패턴은 코드 재사용성을 높이고 알고리즘의 변하지 않는 부분과 변할 수 있는 부분을 분리하는 데 유용합니다.

구조

  • AbstractClass: 알고리즘의 골격을 정의하고, 하나 이상의 추상 메서드를 포함합니다.
  • ConcreteClass: AbstractClass에서 정의된 추상 메서드를 구현합니다.
// AbstractClass
abstract class DataProcessor {
    // Template method
    public final void process() {
        readData();
        processData();
        saveData();
    }

    // Abstract methods to be implemented by subclasses
    abstract void readData();
    abstract void processData();

    // Concrete method
    void saveData() {
        System.out.println("Saving data to database...");
    }
}

// ConcreteClass
class TextDataProcessor extends DataProcessor {
    @Override
    void readData() {
        System.out.println("Reading data from text file...");
    }

    @Override
    void processData() {
        System.out.println("Processing text data...");
    }
}

// ConcreteClass
class ExcelDataProcessor extends DataProcessor {
    @Override
    void readData() {
        System.out.println("Reading data from Excel file...");
    }

    @Override
    void processData() {
        System.out.println("Processing Excel data...");
    }
}

// Client
public class Main {
    public static void main(String[] args) {
        DataProcessor textProcessor = new TextDataProcessor();
        textProcessor.process();

        DataProcessor excelProcessor = new ExcelDataProcessor();
        excelProcessor.process();
    }
}

/*
Reading data from text file...
Processing text data...
Saving data to database...
Reading data from Excel file...
Processing Excel data...
Saving data to database...
*/
profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.

0개의 댓글