728x90

Strategy pattern (전략 패턴) 은 Template pattern 의 단점을 보완하고자 나온 패턴이다.

 

먼저 Template pattern 의 단점이 무엇인지 알아봅시다

 

 

Template pattern 은 부모 클래스에 알고리즘의 골격인 템플릿을 정의하고, 일부 변경되는 비즈니스 로직을 자식 클래스에 정의 하도록 했다.

 

이렇게 하면 자식 클래스가 알고리즘 전체 구조를 변경하지 않고 특정 부분만 재정의 할 수 있다는 장점이 있는데 결국 상속과 오버라이딩을 통한 다형성으로 문제를 해결 하는 것이다.

 

http://www.yes24.com/Product/Goods/65551284

 

이펙티브 자바 Effective Java 3/E - YES24

자바 플랫폼 모범 사례 완벽 가이드 - Java 7, 8, 9 대응자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브

www.yes24.com

 

이펙티브 자바를 읽어보신 분들은 아시겠지만 상속은 최대한 피할수 있으면 피하는게 좋다.

상속 을 하게 되면 자식 클래스와 부모 클래스가 컴파일 시점에서 커플링 되는 문제가 있다.

이것은 의존관계에 대한 문제이며 자식클래스 입장에서는 부모 클래스의 기능을 전혀 사용하지 않는다고 해도 코드를 다 가지고 있는 셈이다.

 

이러한 단점을 개선하기 위해 전략 패턴에서는 변하지 않는 부분을 Context 라는 곳에 두고, 변하는 부분을 Strategy 라는 

인터페이스로 만들어 구현하도록 유도하여 문제를 해결한다.

 

상속이 아니라 위임으로 문제를 해결한다는것이 포인트다.

 

728x90

'Java' 카테고리의 다른 글

java 기본 자료형 정리  (0) 2021.07.08
java use package  (0) 2021.07.07