디자인패턴

템플릿 메소드 패턴

정재익 2025. 12. 19. 19:40

토비스프링 공부 중에 배움

 

어떠한 일들이 순서대로 시행되고 일을 순서대로 유지해야하는데

일부의 일이 단계가 다를때

클래스를 추상클래스로 만들고 일부의 일만 추상메서드로 만들어서 하위 클래스에서 구현한다.

 

public abstract class DataProcessor {

    // 템플릿 메서드
    public final void process() {
        loadData();
        processData();
        saveData();
    }

    protected void loadData() {
        System.out.println("데이터 로딩");
    }

    // 변하는 부분
    protected abstract void processData();

    protected void saveData() {
        System.out.println("데이터 저장");
    }
}
public class CsvDataProcessor extends DataProcessor {
    @Override
    protected void processData() {
        System.out.println("CSV 데이터 처리");
    }
}

public class JsonDataProcessor extends DataProcessor {
    @Override
    protected void processData() {
        System.out.println("JSON 데이터 처리");
    }
}
DataProcessor processor = new CsvDataProcessor();
processor.process();

 

 

참고로 팩토리 메서드 패턴은 템플릿 메소드패턴의 한 형태이다

객체 생성 책임을 서브클래스에 위임하고 생성로직과 사용로직을 분리하는 생성 패턴

if else를 남발하지 않고 하나의 추상메서드를 활용 그리고 그 추상 메서드는 어떤 객체를 생성할지만 정의하고 각 서브 클래스가 생성 책임을 지닌다 그럼 다른 종류의 구현체라도 if else없이 한번의 코드로 구현이 가능하다

'디자인패턴' 카테고리의 다른 글

싱글톤 패턴  (0) 2025.12.21