프로그래밍/디자인패턴
2020. 4. 9.
Strategy (스트레티지)
- 사전적 의미로는 '계획', '전략'을 뜻한다. - 전략을 쉽게 바꿀 수 있도록 해주는 패턴이다. - 현재 상황에 따라 행동하는 방식을 바꾸고 싶을 때 사용한다. 예를들어 내가 복싱과 태권도를 할 수 있다고 가정하자 복싱에서의 '공격'이란 주먹을 내지르는 것이다. 태권도에서의 '공격'은 발로 차는 것이다. (스포츠 태권도에서는 주먹을 안쓰니까 ^^;;;;) 나는 복싱 대회에서는 주먹을 내지르는 공격을 해야하고 태권도 대회에서는 발로 차는 공격을 해야한다. 위 상황을 코드로 구현해보자. 경력이 낮고 실력이 부족했을 적의 나는 아마 위와 같이 구현했을 것이다. 딱 봐도 좋지 않은 코드라는 것을 알 수 있을 것이다. 어떠한 행동이 추가 될 때마다 무슨 대회인지 체크해야한다. 회사를 다니면서 내가 만..