알고리즘을 정의하고 캡슐화하여 동적으로 교체할 수 있게 만드는 것이 목적입니다.
전략 패턴을 구현하기 위해서는 전략을 추상화한 인터페이스(interface)와 이를 구현한 여러 전략, 콘텍스트(context)라고 불리는 클래스(전략을 추상화한 인터페이스를 필드로 가지고 있는 클래스)가 필요합니다.
여러 전략은 독립적인 알고리즘을 구현하며, 추상화에 의존하여 설계되어야 합니다.
추상화에 의존하여 설계된다면, 콘텍스트 클래스는 추상화한 인터페이스 필드를 통해 여러 전략을 동적으로 교체할 수 있습니다.