전략 디자인 패턴은 런타임에 알고리즘의 동작을 선택할 수 있는 행위 디자인 패턴입니다. 알고리즘의 가족을 정의하고, 각 알고리즘을 자체 클래스에 캡슐화하고, 교환 가능하게 만드는 것을 포함합니다. 패턴은 문맥 클래스, 전략 인터페이스 및 구체적 전략으로 구성됩니다. 문맥 클래스는 전략 개체에 대한 참조를 유지하고 공통 인터페이스를 통해 상호작용합니다. 전략 인터페이스는 모든 구체적 전략에 대한 공통 인터페이스를 정의하고, 구체적 전략은 전략 인터페이스를 특정 알고리즘으로 구현합니다. 이 패턴은 단일 클래스 내에서 여러 알고리즘 또는 동작이 정의되어야 하거나, 사용자 입력 또는 기타 런타임 조건에 따라 클래스의 동작이 동적으로 변경해야 할 때 유용합니다. 그것은 유연성, 확장성, 가독성 및 유지 보수를 촉진하고, 개방/폐쇄 원칙을 따릅니다. 그러나 적절하게 사용되지 않으면 추가적인 복잡성 및 오버헤드를 초래할 수 있습니다. 예로는 정렬 알고리즘, 할인 계산 및 인증 메커니즘이 있습니다.
dev.to
Strategy Design Pattern
