woowacourse-study / 2022-modern-java-in-action

우아한테크코스 4기 모던 자바 인 액션 스터디
10 stars 4 forks source link

전략 패턴 단점은 무엇일까? #14

Open yh20studio opened 2 years ago

yh20studio commented 2 years ago

문제

여기서 언급하는 동작 파라미터화의 기법 중 하나인 전략 패턴에 대한 장점이 많이 소개 되어있다. 그렇다면 단점은 무엇일까?

선정 배경

전략 패턴은 특정 상황에 맞을 때 큰 효과를 발휘하기에 책에서 언급하는 장점으로 인해서 무조건적으로 전략 패턴을 사용하면 안되기 때문이다.

관련 챕터

[2장] 동작 파라미터화 코드 전달하기

yh20studio commented 2 years ago

전략패턴 단점

  1. 코드 설계시에, 혹은 클라이언트 입장에서 인터페이스 구현체 사용할 때 어떤 전략이 있고 해당 전략에 대한 내용을 알고 있어야 한다. 이는 어쩌면 유지보수를 힘들게 할 수 도 있다.
  2. 인터페이스로 타입을 정의했을 때 해당 전략을 구현하는 클래스들이 모두 해당 메서드들을 똑같이 사용하지 않는다면 효율적이지 못할 수 있다. (파라메터 타입, 개수, 담고 있는 의미 등을 온전히 활용하지 못한다는 뜻)
  3. 간단한 소프트웨어에서 복잡해지는 오버 엔지니어링 상황이 나올 수 있다.