728x90
반응형
전략 패턴(Strategy Pattern)은 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나입니다. Swift에서도 전략 패턴을 활용하여 동일한 작업을 다양한 전략으로 대체할 수 있습니다. 이 블로그 포스트에서는 전략 패턴의 개념을 소개하고, Swift로 구현된 예제를 통해 전략 패턴의 사용법을 알아보겠습니다.
전략 패턴의 개념: 전략 패턴은 동일한 작업을 수행하는 여러 알고리즘을 정의하고, 각 알고리즘을 캡슐화하여 상호 교환 가능하도록 만드는 패턴입니다. 이 패턴은 알고리즘의 구현과 사용을 분리하여 유연하고 확장 가능한 코드를 작성할 수 있습니다. 전략 패턴은 "행동"을 객체로 캡슐화하여 동적으로 변경할 수 있게 합니다.
전략 패턴 예제:
protocol Strategy {
func execute()
}
class ConcreteStrategyA: Strategy {
func execute() {
print("Executing strategy A")
}
}
class ConcreteStrategyB: Strategy {
func execute() {
print("Executing strategy B")
}
}
class Context {
private var strategy: Strategy
init(strategy: Strategy) {
self.strategy = strategy
}
func setStrategy(strategy: Strategy) {
self.strategy = strategy
}
func executeStrategy() {
strategy.execute()
}
}
위의 예제에서는 Strategy 프로토콜을 정의하고, ConcreteStrategyA와 ConcreteStrategyB 클래스가 이를 구현합니다. Context 클래스는 전략을 사용하는 클래스로, 전략을 변경하거나 실행할 수 있습니다.
사용 예시:
let context = Context(strategy: ConcreteStrategyA())
context.executeStrategy()
context.setStrategy(strategy: ConcreteStrategyB())
context.executeStrategy()
위의 예시에서는 Context 인스턴스를 생성하고, 초기에는 ConcreteStrategyA를 전략으로 설정하여 실행합니다. 그 후 setStrategy 메서드를 사용하여 전략을 ConcreteStrategyB로 변경하고 다시 실행합니다.
728x90
반응형
'Swift' 카테고리의 다른 글
Swift에서 데코레이터 패턴(Decorator Pattern)의 개념과 예제 (0) | 2023.06.15 |
---|---|
Swift에서 옵저버 패턴(Observer Pattern)의 개념과 예제 (0) | 2023.06.15 |
Swift에서 이터레이터 패턴(Iterator Pattern)의 개념과 예제 (0) | 2023.06.15 |
Swift에서 상태 패턴(State Pattern)의 개념과 예제 (0) | 2023.06.15 |
Swift에서 템플릿 메소드 패턴(Template Method Pattern)의 개념과 예제 (0) | 2023.06.15 |