본문

Template Callback Pattern

반응형

전략을 익명 내부 클래스로 구현한 전략 패턴

 

이미지 출처: velog.io/@dahye4321

 

템플릿 콜백 패턴은 전략 패턴의 변형으로, 스프링의 3대 프로그래밍 모델 중 하나인 DI(의존성 주입)에서 사용하는 특별한 형태의 전략 패턴이다. 템플릿 콜백 패턴은 전략 패턴과 모든 것이 동일한데 전략을 익명으로, 내부 클래스로 정의해서 사용한다는 특징이 있다.

전략패턴Strategy Pattern (전략 패턴): https://server-engineer.tistory.com/68

 

 

💡 Strategy.java

public interface Strategy {
    public abstract void runStrategy();
}

 

 

💡 Soldier.java

public class Soldier {
    void runContext(String weaponSound) {
        System.out.println("전투 시작");
        executeWeapon(weaponSound).runStrategy();
        System.out.println("전투 종료");

    }

    private Strategy executeWeapon(final String weaponSound) {
        return new Strategy() {

            @Override
            public void runStrategy() {
                System.out.println(weaponSound);
            }
        };
    }
}

 

 

💡 Client.java

public class Client {

    public static void main(String[] args) {
        Soldier soldier = new Soldier();

        soldier.runContext("총 총 총");
        System.out.println();

        soldier.runContext("칼 칼 칼");
        System.out.println();

        soldier.runContext("도끼 도끼 도끼");

    }
}

 

 

💡 결과

전투 시작
총 총 총
전투 종료

전투 시작
칼 칼 칼
전투 종료

전투 시작
도끼 도끼 도끼
전투 종료
 

 

반응형

공유

댓글