Unity 개발

디자인 패턴 : 전략 패턴

내공부방 2022. 12. 2. 09:44
반응형

전략 패턴이란?

실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴

전략 패턴은 특정한 계열의 알고리즘들을 정의하고 각 알고리즘을 캡슐화하며 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만드는 것이라고 합니다.

 

즉 특정 컨텍스트에서 알고리즘을 별도로 분리하는 설계 방법을 의미합니다

 

전략 패턴이 적용되지 않은 코드

이런 경우 시나리오가 늘어날 때마다 Switch문은 계속해서 늘어나게 될 것이고, 추가적으로 기능들을 구현하게 되었을 때

로직이 변경됨에 따라 모든 시나리오의 로직을 연쇄적으로 수정하게 될 가능성이 높아집니다.

 

전략 패턴이 적용 코드

시나리오 세팅하는데 있어 관리해주는 스크립트입니다.

 

하나의 시나리오 클래스

이를 Manager 스크립트에 현재 시나리오는 '이것이다'라고 기입만 해준다면 사용할 수 있다.

Manager 스크립트

전략패턴 장점

- 새로운 시나리오 추가를 보다 쉽게 할 수 있다는 점

- 요구사항이 변경되었을 때 기존의 코드를 따로 수정하지 않아도 된다는 점

- 클라이언트와 독립적이기 때문에 관리하기 때문에 관리하기에도 유용하다는 점

- 코드 중복을 방지 할 수 있다는 점 

- 확장성이 용이하다는 점

전략패턴 단점 

- 많은 알고리즘에 대한 성능, 효율을 알고 있어야 한다는 점

- 알고리즘, 시나리오가 많아질수록 객체, 클래스의 개수도 계속해서 늘어난다는 점 

- 컨텍스트와 스토리지를 조립하면 다시 전략을 변경하기가 쉽지 않다는 점

반응형