Strategy Pattern( 스트래티지 패턴 )
1. 정의 - 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. - 또한, 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 2. 클래스다이어그램 참고 : UML 설명 (http://hongjinhyeon.tistory.com/25) 3. 디자인 원칙 - 애플리케이션에서 달라지는 부분을 찾아내고 달라지지 않는 부분으로 부터 분리시켜 캡슐화 한다. - 구현이 아닌 인터페이스에 맞쳐서 프로그래밍한다. - 상속보다 구성을 활용한다. ("A는 B이다" 보다 "A에는 B가 있다"가 나을 수 있다) - 구성을 이용하여 시스템을 만들면 유연성을 크게 향상시킬 수 있다. - 알고리즘군을 별도의 클래스의 집합으로 캡슐화할 수 있도록 만들어 줄 뿐만 아니라, 실행시 행동을 ..