01. 전략 패턴(Strategy Pattern)

2017년 1월 13일 금요일

01. 전략 패턴(Strategy Pattern)


정의
동일한 목적을 가지는 알고리즘들을 하나의 인터페이스로 묶고, 각각의 알고리즘을 캡슐화 하여 교환하여 사용할 수 있도록 한 패턴


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

0 개의 댓글 :

댓글 쓰기