전략 패턴은 정책 패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴
- 예를 들어
Cart.pay(card)가 있다면 card를 상속 받은 kakaocard, tosscard가 있다면, Cart.pay(new kakaocard(이름, 카드번호, 유효일), Cart.pay(new tosscard(이메일, 카드번호)로 다른 전략으로 가능하다.
즉, Cart라는 Context안에서 캡슐화한 알고리즘(card를 상속받은 애들)을 서로 바꿔주는 전략 패턴이된다.
- 전략 패턴을 이용한 라이브러리로는 passport가 있다.
출처 : 면접을 위한 CS 전공지식 노트