[디자인패턴] 전략 패턴 ( Strategy Pattern )

전략패턴이란?


<aside> 💡 스트래티지 패턴은 같은 문제를 해결하는 여러 알고리즘(방식)이 클래스별로 캡슐화 되어있고, 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게하는 디자인 패턴이다.

</aside>

알고리즘군을 정의하고, 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다.

런타임시에도 setter로 전략(행위 캡슈화모음) 을 바꿀수 있다.

전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.

전략패턴 사용방법


  1. 변경이 자주 일어날 행위를 정한다.
  2. 자주 바뀔 행위에 대한 인터페이스를 정의한다. (추상화)

Untitled

//변경이 자주 일어날 행위에 대한 인터페이스를 정의한다.
public interface QuackBehavior {
		void quack();
}