디자인패턴2 전략 패턴(Strategy Pattern) 정리 - 템플릿 메서드 패턴과의 차이점 템플릿 메서드 패턴은 부모 추상 클래스가 변경되면 그 하위 구현체인 자식 클래스들까지 영향을 받는다는 단점이 있다.즉, 자식 클래스들이 부모 추상 클래스에 의존하고 있다는 점이 문제이다.이러한 단점을 보완한 것이 바로 전략 패턴이다.📝 전략 패턴의 기본 구조아래 첫 번째 그림처럼 Context 클래스의 execute() 메서드에 변하지 않는 로직 부분을 구현하고, 변하는 부분은 Strategy라는 인터페이스의 call() 메서드를 통해 분리한다. 이로써 상속이 아닌 위임(composition)으로 문제를 해결한다. 이는 스프링의 의존성 관리 패턴과 동일하다.전략 패턴 동작 흐름아래 그림은 전략 패턴이 동작하는 전체 흐름을 시각화한 것이다.Context에 원하는 Strategy 구현체를 주입한다.클라이언.. Design Pattern 2025. 3. 27. [디자인 패턴] 템플릿 메서드 패턴 📝 템플릿 메서드 패턴?템플릿 메서드 패턴은 객체지향 디자인 패턴 중 하나다.공통된 구조를 가진 코드를 부모 클래스에서 정의하고, 세부 구현은 자식 클래스에서 따로 처리하게 만드는 방식.이렇게 하면 동일한 구조의 껍데기를 반복해서 쓰지 않아도 돼서 코드가 깔끔해진다. 📘 예시 코드로 이해해보자예를 들어, 게임 캐릭터가 공격하는 과정을 생각해보자. 모든 캐릭터는 "준비 -> 공격 -> 마무리"라는 공통 흐름을 가지는데, 구체적인 공격 방식은 캐릭터마다 다르다. 이걸 템플릿 메서드 패턴으로 구현하면:// 부모 클래스abstract class Character { // 템플릿 메서드: 공통 흐름 정의 public void attack() { System.out.println("캐릭터.. Design Pattern 2025. 3. 24. 이전 1 다음