스트래티지 패턴
#
Find similar titles
- (rev. 2)
- JEM
Structured data
- Category
- Programming
스트래티지 패턴(Strategy Pattern)에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이어트와는 독립적으로 알고리즘을 변경할 수 있다.
인터페이스와 추상클래스를 상속받은 클래스들은 부모 클래스의 행동(메소드)들을 위임받는다. 두 클래스를 합치는 것을 구성(composition)을 이용하는 것이라고 부르며, 하위 클래스에서 행동을 상속받는 대신, 올바른 행동 객체로 구성됨으로써 행동을 부여받게 된다. 이것은 "상속보다는 구성을 활용한다" 는 세번째 디자인 원칙을 지키는 테크닉 중에 하나이다.
구성을 이용하여 시스템을 만들면 유연성을 크게 향상시킬 수 있다. 단순히 알고리즘군을 별도의 클래스의 집합으로 캡슐화할 수 있도록 만들어주는 것 뿐 아니라, 구성요소로 사용하는 객체에서 올바른 행동 인터페이슬르 구현하기만 하면 실행시에 행동을 바꿀 수도 있게 해 준다.