참치코더의 꿈 메모장

전략패턴(Strategy Pattern) 이란? 본문

디자인 패턴

전략패턴(Strategy Pattern) 이란?

참치깡 2025. 8. 22. 22:29
728x90

전략패턴은 객체의 행위(알고리즘, 동작)을 캡슐화해서, 런타임에 행위를 바꿀 수 있도록 하는 디자인 패턴이다.

-> 알고리즘 군을 정의하고, 각각을 독립적으로 캡슐화하여 교체 가능하게 만드는 전략

 

핵심 의도

- if-else나 switch문으로 분기 처리하지 않고, 알고리즘을 별도로 분리해 둬서 갈아끼우기 쉽게 함 

 

구조

1. Stratege (전략 인터페이스)

 - 알고리즘이 수행해야 하는 공통 인터페이스 정의 

 

2. ConcreteStrategy (구체적인 전략 클래스)

- Strategy를 구현한 실제 알고리즘들 

 

3. Context (문맥/환경 클래스)

- Strategy를 사용하며, 어떤 Strategy를 사용할지는 런타임에 결정됨

 

장점

- 코드의 유연성과 확장성이 좋아짐

- OCP (개방-폐쇄 원칙) 준수 -> 새로운 전략을 추가할 때 기존 코드를 건드리지 않아도 됨

 

단점

- 전략 클래스가 많아질 수 있음

- Context와 Strategy가 분리돼 있어서 구조가 다소 복잡해질 수 있음

 

728x90
Comments