01. 전략 패턴(Strategy Pattern)
정의
동일한 목적을 가지는 알고리즘들을 하나의 인터페이스로 묶고, 각각의 알고리즘을 캡슐화 하여 교환하여 사용할 수 있도록 한 패턴
목적
목적은 하나로 동일하나 그 목적을 달성할 수 있는 알고리즘은 다양할 때 사용
장점
행동들을 서로 다른 클래스로 캡슐화하기에 조건문을 사용할 필요가 없다.
서브클래싱을 사용하지 않아 구현한 알고리즘과 행동들을 재사용 할 수 있다.
단점
적합한 행동을 선택하기 위해서는 사용자가 사용되는 다양한 전략에 대하여 미리 인지하고 있어야 한다.
행동별로 클래스를 생성하여 프로그램 내의 객체의 수가 증가한다.
Template Method와의 차이점
Strategy 패턴 – 알고리즘 전체를 캡슐화, 구성과 위임을 통하여 알고리즘을 캡슐화, 구상과 위임을 사용하여 알고리즘 전체 수정 가능
Template Method 패턴 – 알고리즘의 각 단계를 캡슐화, 상속을 이용하여 알고리즘을 캡슐화, 상속으로 인한 코드 재사용이 가능, 상속을 사용하여 변경 가능한 부분과 그렇지 않은 부분이 존재
0 개의 댓글 :
댓글 쓰기