디자인 패턴2 Strategy Pattern 전략 패턴 (Strategy Pattern) 템플릿 메서드 패턴은 상속을 통해 문제를 해결했다. 전략패턴은 Context 라는 곳에 변하지 않는 부분을 두고, 변하는 부분을 Strategy 라는 인터페이스에서 구현하도록 하여 상속이 아닌 위임을 통해 문제를 해결한다. 전략 패턴의 의도 알고리즘 제품군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만들자. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. Context @Slf4j public class Context { private final Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void e.. 2022. 12. 2. Template Method Pattern 템플릿 메서드 패턴 템플릿 메서드 패턴의 의도 작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다. 로깅 부분은 변하지 않지만, 비즈니스 로직은 변경. 이 둘을 분리해서 모듈화 해야 한다. @Slf4j public abstract class AbstractTemplate { public void execute() { long startTime = System.currentTimeMillis(); // Logic Start call(); // 상속 // Logic End long endTime = System.currentTimeMillis(); long result.. 2022. 12. 2. 이전 1 다음