Strategy (전략) 패턴[상황] 과일 매장에서 상황에 따라 다른 가격 할인 정책을 적용할 때, 가격을 계산하는 모듈에 가격 할인 정책을 적용하기 위해 if-else 블록을 추가하게 됨 [문제] 서로 다른 계산 정책들이 한 코드에 섞여 있어, 정책이 추가될수록 코드 분석을 어렵게 함 가격 할인 알고리즘(계산 방법)을 추상화한 것을 Strategy(전략), 가격 계산 기능 자체의 책임을 갖고 있는 것을 Context(콘텍스트)라고 부르는데, 이렇게 특정 콘텍스트에서 알고리즘(전략)을 별도로 분리하는 설계 방법이 전략 패턴전략 객체는 콘텍스트를 사용하는 클라이언트에서 직접 생성 [장점] 콘텍스트 코드의 변경 없이 새로운 전략을 추가할 수 있음, 할인 정책 확장에는 열려 있고 변경에는 닫혀 있으므로 개방 ..