전략패턴

log.yunsik·2022년 10월 31일
0

전략패턴이란

여러 알고리즘을 각각의 클래스로 캡슐화하고 공통된 인터페이스로 추상화한다.
로직을 수행하는 곳에서는 추상된 인터페이스만 사용함으로써
코드는 바뀌지 않지만 사용하는 알고리즘을 바꿀 수 있다.

환전을 예시로 전략패턴을 구현해보자

1. 환전 인터페이스 정의하고 인터페이스를 구현한다.

2. 인터페이스를 상속해 구현한다.

엔화 전략 패턴

달러 전략패턴

3. 전략을 주입받고 주입받은 전략에 따라 환전을 해준다.

이처럼 클라이언트에서는 코드를 변경할 필요 없이 전략을 주입받아 사용이 가능해진다.

장단점

장점

  • 새로운 전략을 추가하더라도 기존 코드를 변경하지 않는다.
    OCP를 만족할 수 있다.
  • 상속 대신 위임을 사용할 수 있다.
    상속은 상위 클래스에서 변경되면 하위 클래스에서 영향을 미치지만 위임을 사용하면 하위 클래스는 전혀 영향을 받지 않는다.
  • 런타임에 전략을 변경할 수 있다.

단점

  • 클래스가 많아지고 복잡도가 증가한다.
  • 클라이언트 코드가 구체적인 전략을 알아야한다.

참고자료

https://www.inflearn.com/course/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard

0개의 댓글