제이슨의 개발이야기
[Design Pattern] 스트래티지 패턴! strategy pattern 본문
스트레티지 패턴 (strategy pattern) 이란
서로 다른 알고리즘들이 존재하고 , 실행 중 적합한 알고리즘을 선택해서 적용하는 패턴을 스트레티지 패턴 입니다
이것을 좀 더 쉽게 예를 들자면 영화 티켓을 구매하는 경우
누군가는 초대권이 있어서 초대권으로 티켓을 받는 경우 , 누군가는 현금결제 , 누군가는 신용카드 결제 , 누군가는 vip 멤버쉽 티켓 등등
같은 티켓을 구매하지만 티켓을 구매하는 방식(알고리즘) 이 서로 다른 경우 스트레티지 패턴 (strategy pattern) 을 사용하면 쉽게 간결하게 구현 할 수 있습니다 !
다시 스트레티지 패턴 (strategy pattern) 을 정리하면
같은 종류의 작업(ex 영화티켓 구매) 을 하는 알고리즘을 정의 하고 각 알고리즘을 캡슐화 함 그리고 알고리즘(ex 초대권,현금결제 등등) 들을 서로 바꿔 사용할 수 있도록 함 스트레티지 패턴은 알고리즘을 사용하는 클라이언트로 부터 독립적으로 알고리즘을 바꿔서 적용시킬 수 있도록 하는 패턴을 스트레티지 패턴입니다!
아래는 예제 코드 입니다 ※ 제가 급하게 생각한 예제인대 혹시 스트레티지 패턴 (strategy pattern) 에 어울리지 않는 예제라고 생각하시면 댓글 달아주시면 너무 감사합니다
사실 위에 예제는 너무너무 쉬운 예제이고 다들 아시다시피 실제 개발 단계에서는 저런식으로 쉽게 나오는 경우가 별로 없습니다 ㅠㅠ
그러나 중요한것은 개념입니다! 내가 원하는 알고리즘으로 바꾸고 작동한다는 개념!!! 이 것을 필히 기억,숙지 해주세요!!
'디자인 패턴' 카테고리의 다른 글
[디자인패턴]MVC , MVP,MVVM 이란 무엇인가? (0) | 2021.04.13 |
---|---|
[디자인패턴] 데코레이터 패턴(Decorator Pattern) In java (0) | 2021.03.24 |
[Design Pattern] 프로그래밍 개발에서 디자인 패턴?? GoF? 디자인패턴이란? (0) | 2021.03.11 |