Strategy
행위를 동적으로 바꿔끼어 봅시다.
Strategy 패턴은 알고리즘(또는 행위)을 캡슐화하여 클라이언트가 실행 시점에 자유롭게 교체하거나 변경할 수 있도록 하는 디자인 패턴입니다.
즉, 특정 규칙이나 방식을 독립된 전략 객체로 분리하여, 실행 중에 알고리즘을 변경할 수 있게 해줍니다.
User는 자신의 상태를 조회한다.
무기와 방어구를 상황에 맞게 교체할 수 있다.
How do code?
Context:
전략을 실행할 환경(문맥)을 나타냅니다.
Strategy 인터페이스를 구현한 객체를 주입받아, 실행 시점에 해당 전략의
execute()
메서드를 호출합니다.전략 변경이 가능하여, 실행 중에도 알고리즘을 동적으로 전환할 수 있습니다.
Strategy 인터페이스:
실행할 알고리즘(또는 행위)을 정의합니다.
여러 ConcreteStrategy들이 이 인터페이스를 구현하여 서로 다른 알고리즘을 제공합니다.
ConcreteStrategyA/B:
Strategy 인터페이스의 구체적인 구현체로, 각기 다른 알고리즘을 수행합니다.
클라이언트는 Context에 원하는 전략 객체를 주입하여, 실행 방식이나 규칙을 손쉽게 변경할 수 있습니다.
Last updated