[디자인패턴] - 전략 패턴
본 게시글은 '헤드퍼스트-디자인 패턴 (개정판)'을 기준으로 작성된 글입니다. 전략 패턴이란? 전략 패턴이란 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다. 왜 사용할까? 예를들어 오리 시뮬레이션 게임을 제작한다고 가정해보자. 먼저 Duck 이라는 슈퍼 클래스를 만들고, 클래스를 확장하여 다른 종류의 오리들을 만들었다고 가정해보자. 만약 fly() 기능을 추가해달라고 한다면? 기존의 Duck 클래스에 fly()를 추가해주고, 각 서브클래스에서 fly()를 상속받게 해준다. 날면 안되는 오리가 있다면? 날면 오리가 안되는 오리가 있다면, 수퍼 클래스에 fly()를 추가하는 행동으로 날면 ..