템플릿 메서드 패턴
2021. 12. 29. 10:03
기타 IT
템플릿 메서드 패턴이란? 실행 과정/단계는 동일한데 각 단계 중 일부의 구현이 다른 경우 사용할 수 있는 패턴이다. 동일한 실행 과정을 제공하는 템플릿 메서드를 활용해 중복을 제거할 수 있다. 크게 두 가지 구조로 나뉜다. 실행 과정을 구현한 상위 클래스 일부 단계를 구현한 하위 클래스 상위 타입의 역할은 무엇일까? 실행 과정을 구현한 메서드를 제공하는 역할을 한다. 일부 단계 구현을 추상 메서드로 제공한다. 이 일부 단계 구현은 각 다른 구현이기 때문에 추상 메서드로 제공하며, 하위 클래스에서 구현하게 된다. 실행 과정 메서드에서 일부 단계 구현 메서드를 호출하는 방식이다. 보통은 하위 타입이 상위 타입의 기능을 재사용할지 정하기 때문에 흐름의 주체가 하위이지만 템플릿 메서드 패턴은 흐름의 주체가 상위..
전략(Strategy) 패턴
2021. 12. 23. 11:17
기타 IT
전략 패턴이란? 동일한 기능의 알고리즘이 다를 경우 해당 알고리즘을 쉽게 변경하기 위한 패턴이다. DI를 활용한 방식으로 OCP에 특화되어, 변경에 용이하다. 전략 패턴을 사용하지 않으면 어떻게 안좋은데? 동일한 기능이나 알고리즘이 달라져 자주 변경이 된다면 보통 if-else로 많이 작성을 할 것이다. 어떤 상황인지 살펴 보자. 아래는 과일 가게에서 할인 정책을 적용해 가격을 계산하는 기능이다. 해당 모듈은 가격을 계산하는 모듈이다. 가격 계산과 할인 정책이 같이 들어가 있다. 아마 보통 이렇게 작성되어 있는 코드가 많을 것이다. 나도 회사에서 100% 이렇게 되어있다. public class Calculator { public int calculate(boolean firstGuest, List it..