본문 바로가기

Strategy Pattern

Strategy Pattern #2 Strategy Pattern #2 스트래티지 패턴 두번째 시간이다. 우선 저번에 필자가 냈던 문제를 생각해보자~ 1. 개발자는 로봇 게임을 제작중이다. 2. 게임을 더 재밋게 하기 위하여 개발자는 특수기능을 넣을려고 한다. 3. 현재는 특수기능이 "날 수 있는 기능" 밖에 없지만 이후에는 여러가지 기능이 추가 될 수도 있다. 해결방법으로 생각했던 상속을 사용하게 되면 현재 날아다니는 기능은 구현이 가능하나 나중에 특수기능이 더 많이 추가 된다면 문제가 발생한다. 그리고 또 오버라이딩을 한다면 로봇 수가 늘어 나게 될 때 개발자는 죽도록 노가다 코딩을 해야 될 것 이다. 이제 조금 더 쉽게 이 문제를 해결할 수 있는 방법을 생각 해 보자. 필자는 이 문제의 해답은 인터페이스를 잘 사용하므로써 해결 가능하.. 더보기
Strategy Pattern #1 Strategy Pattern 스트래티지 패턴이란 각각의 기능을 하는 클래스를 캡슐화하여 이것을 교환하여 사용할 수 있도록 만드는 역활을 한다. 즉 현재 사용하고 있는 기능(클래스)를 동적으로 변경하여 적용 시킬 수 있다. 간단하게 예를 들자면 로봇 게임이 있다고 하자. (갑자기 http://www.defineyou.net/ 에서 본 로롯코드가 생각나서....) 이 로봇게임에는 여러가지 종류의 로봇이 나온다. 이 여러 종류의 로봇을 제작하기 위해서는 Robot 이라는 클래스를 상속 받아서 제작한다. Robot Class에는 다음과 같은 기능이 있다. turn(); 돌고 도는 메소드 move(); 이동을 하는 메소드 attack(); 공격을 하는 메소드 각 로봇에는 display(); 라는 모양을 뿌려주는.. 더보기