C++/디자인패턴

[C++] 행동 패턴/전략, 스트래티지 패턴(Strategy Pattern)

programmer-faust 2025. 7. 11. 18:18
  • 순서
    1. 전략패턴이란?
    2. 장점
    3. 단점
  • 전략패턴이란?
    1. 알고리즘을 캡슐화하여 실행 중에 동적으로 교체할 수 있도록 하는 디자인 패턴이다.
    2. 행동 패턴에 속한 디자인 패턴이다.
    3. 행동패턴이란?
      • 객체나 클래스 사이의 알고리즘이나 책임 분배를 정의하여 복잡한 행동을 관리하고 조정하는데 도움을 주는 패턴
      • 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하며 객체 사이의 결합도 최소화에 중점을 둠
      • 협력을 관리하여 코드의 유연성과 재사용성을 높이는데 사용됨.
  • 장점
    1. 새로운 전략을 추가하거나 기존 전략을 변경하기 용이하여 코드의 유연성및 확장성을 높임.
    2. 결합도를 최소화하여 클라이언트 코드가 특정 알고리즘에 종속되지 않도록하여, 필요에 따라 전략을 선택하여 사용할 수 있음.
    3. OCP(개방 폐쇄 원칙)을 준수함
    4. 각 전략이 독립적으로 구현되어 코드의 가독성이 향상됨
    5. 각 전략을 개별적으로 테스트할 수 있어 테스트 용이성이 높음
  • 단점
    1. 전략 클래스, 인터페이스, 클라이언트 코드 등 추가적인 구성 요소가 필요하여 코드 복잡성이 증가할 수 있음.
    2. 런타임 시 전략을 선택하고 교체하는 과정에서 약간의 성능 오버헤드가 발생할 수 있음.
    3. 적절한 전략을선 택하고 분리하는 설계가 어려울 수 있음.

'C++ > 디자인패턴' 카테고리의 다른 글

[C++]구조패턴/어댑터 패턴  (0) 2025.07.28
[C++]생성 패턴/빌더 패턴  (2) 2025.07.25
[C++]생성 패턴/팩토리 패턴  (3) 2025.07.23
[C++] 생성 패턴/싱글톤 패턴  (0) 2025.06.20
[C++] 디자인패턴  (0) 2025.06.13