Strategy Pattern
전략 패턴
Last updated
전략 패턴
Last updated
실행 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴입니다. 어떤 일을 수행하는 알고리즘이 여러개 일때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴입니다.
전략 알고리즘 객체들: 알고리즘, 행위, 동작을 객체로 정의한 구현체
전략 인터페이스: 모든 전략 구현제에 대한 공용 인터페이스
컨텍스트: 알고리즘을 실행해야 할 때마다 해당 알고리즘과 연결된 전략 객체의 메소드를 호출
클라이언트: 특정 전략 객체를 컨텍스트에 전달 함으로써 전략을 등록하거나 변경하여 전략 알고리즘을 실행한 결과를 가져옵니다.
전략 패턴은:
동일 계열의 알고리즘군을 정의합니다 (전략 구현체로 정의)
각각의 알고리즘을 캡슐화 합니다 (인터페이스로 추상화)
이들을 상호 교환이 가능하게 합니다 (Composition으로 구성)
알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 동작한다. (컨텍스트 객체 수정없이)
알고리즘을 다양하게 변경할 수 있게 한다. (메소드를 통해 전략 객체를 실시간으로 변경)