[kotlin] 코틀린으로 구현하는 전략 디자인 패턴 예제
전략 디자인 패턴은 알고리즘을 캡슐화하고, 실행 중에 알고리즘을 선택할 수 있는 디자인 패턴입니다. 코틀린을 사용하여 전략 디자인 패턴을 구현하는 예제를 살펴보겠습니다.
전략 디자인 패턴
전략 디자인 패턴은 행위 디자인 패턴의 한 종류로, 알고리즘군을 정의하고 각 알고리즘을 캡슐화하여 상호교환 가능하도록 만듭니다. 실행 중에 알고리즘을 쉽게 변경할 수 있으며, 구현 세부사항을 클라이언트로부터 숨길 수 있습니다.
코틀린으로 전략 디자인 패턴 구현하기
// 전략을 나타내는 인터페이스
interface Strategy {
fun executeStrategy()
}
// 구체적인 전략 구현
class StrategyA : Strategy {
override fun executeStrategy() {
println("전략 A 실행")
}
}
class StrategyB : Strategy {
override fun executeStrategy() {
println("전략 B 실행")
}
}
// 전략을 사용하는 컨텍스트
class Context(private val strategy: Strategy) {
fun execute() {
strategy.executeStrategy()
}
}
fun main() {
val contextA = Context(StrategyA())
val contextB = Context(StrategyB())
contextA.execute()
contextB.execute()
}
위 코드에서는 먼저 Strategy
인터페이스를 정의하고, 각각의 구체적인 전략을 나타내는 StrategyA
와 StrategyB
클래스를 구현합니다. 그리고 Context
클래스를 사용하여 전략을 실행합니다.
이제 실행해보면 “전략 A 실행”과 “전략 B 실행”이 순서대로 출력됩니다.
이 예제에서는 간단한 두 가지의 전략을 구현했지만, 전략 디자인 패턴을 사용하면 알고리즘을 쉽게 추가하고 변경할 수 있습니다.
결론
코틀린을 사용하여 전략 디자인 패턴을 구현하는 방법에 대해 살펴보았습니다. 이 패턴을 사용하면 알고리즘을 캡슐화하여 유연한 프로그램을 작성할 수 있으며, 코드를 재사용하고 확장하기 쉽습니다.
참고문헌: refactoring.guru