전략 패턴(Strategy Pattern)

INSANEZINDOL·2022년 3월 2일
0

Design Pattern

목록 보기
1/10
post-thumbnail

개요

여러 알고리즘을 하나의 추삭적인 접근점(Interface)을 만들어 접근점에서 서로 교환 가능(Deligate)하도록 하는 패턴

기본 설계

사용자(Client)는 자신에게 맞는 전략(Strategy)을 취사선택하여 로직을 수행할 수 있게하는 방법입니다.
게임을 예로들면 캐릭터는 공격이라는 작업을 수행함에 있어 무기를 상황에 맞게 선택해서 공격을 위임할 수 있습니다.

장점

전략 패턴(Strategy Pattern)을 쓰는법도 봤고 예제도 작성해봤습니다. 근데 이게 무슨 장점이 있는 것일까요? 전략 바꾸는게 쉽다?
그럼 그냥 Knife, Sword 선언해서 써도 되지 않을까요? 이 전략패턴의 가장 큰 장점은 확장성입니다. 위 클래스 다이어그램을 보면 아시다시피
우리가 지금은 칼(Knife)과 검(Sword)만 가지있지만, Weapon 이라는 인터페이스를 상속해서 같은 기능(책임)만 수행할 수 있다면 얼마든지 다른 무기도 추가할 수 있습니다. 위 다이어그램에서는 도끼(Ax)가 추가되었습니다.

profile
Java Backend Developer

0개의 댓글