헤드퍼스트 디자인패턴 - 전략 패턴

2024. 12. 7. 01:50Books

1. 디자인 패턴 소개와 전략 패턴


전략패턴을 사용하기 전에는 ?

1. 상속을 이용해서 코드를 작성

상속을 이용했을 때의 단점

  • 서브클래스에서 코드가 중복된다.
  • 실행 시에 특징을 바꾸기 힘들다.
  • 모든 서브클래스의 행동을 알기 힘들다.
  • 코드를 변경했을 때 다른 클래스들에게 원치 않은 영향을 끼칠 수 있다.

2. 인터페이스를 이용해서 코드를 작성

인터페이스를 이용했을 때의 단점

  • 코드를 재사용하지 않으므로 코드 관리에 문제가 생긴다.
  • 행동을 변경할 때마다 행동을 구현한 서브클래스들을 전부 찾아서 일일이 고쳐야 한다.

3. 캡슐화를 이용해서 코드를 작성

2번에서는 행동을 인터페이스로 표현하고 직접 구현했었지만, 행동 인터페이스를 구현한 행동 클래스를 만들고 그것을 사용한다.

  • 재사용과 쉬운 변경 가능
  • 해당 기능을 직접 구현하지 않고 행동 클래스에 위임

전략 패턴

  • 알고리즘을 정의하고 캡슐화해서 각각의 알고리즘을 수정해서 쓸 수 있게 해준다.
  • 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.

전략 패턴의 디자인 원칙

  • 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다.
  • 구현보다는 인터페이스에 맞춰서 프로그래밍 한다.
  • 상속보다는 구성을 활용한다.
    = 바뀌는 부분은 따로 뽑아서 캡슐화한다. 그러면 나중에 바뀌지 않는 부분에는 영향을 미치지 않고 그 부분만 고치거나 확장할 수 있다.

'Books' 카테고리의 다른 글

Object - 객체, 설계  (0) 2024.12.06