본문 바로가기

Study/디자인 & 설계

strategy pattern

반응형

https://jusungpark.tistory.com/7

 

디자인패턴 - 스트래티지 패턴 (strategy pattern)

스트래티지 패턴(strategy pattern) 알고리즘군을 정의하고 각각캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할수..

jusungpark.tistory.com

 

모든 서브클래스가 사용하는 것이 아닌 기능을 추상클래스에 선언하고, 추상 메소드를 상속받아 구현할 경우

-> 해당 기능을 사용하지 않는 서브클래스에서도 상속받는 메소드들을 오버라이드 해서 구현해야 한다.

 

해당 기능에 대한 인터페이스를 구현하고, 이를 클래스에서 재정의하여 사용하는 경우

-> 서브클래스에서 같은 기능을 하는 메소드에 대한 중복이 생기고, 변경 시에 모든 서브클래스의 메소드를 수정해 줘야 한다.

-> 모든 서브클래스에서의 로직을 예상하기 어렵다.

 

strategy pattern의 디자인 원칙

 

" 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다."

각 서브클래스 마다 변하는 기능을 분리한다.

 

"상속보다는 구성을 활용한다"

이 메소드들은 각 행동을 나타낼 수 있는 클래스로 구성한다.

 

"구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다."

즉, 각 기능에 대한 인터페이스를 만들고, 이를 재정의하는 클래스들을 생성한다. (인터페이스 : 클래스 = 1 : n)

 

각 서브클래스에서는 인터페이스 변수를 생성하고, 해당 기능의 메소드에서 이를 재정의한 클래스를 호출한다.

 

 

 

반응형

'Study > 디자인 & 설계' 카테고리의 다른 글

TDD  (0) 2019.05.25
코드 품질 최적화 전략 및 기법  (0) 2019.05.18