에서 헤드 퍼스트 디자인 패턴 그것은 가르치는 전략 패턴을 오리의 다른 서브 클래스가 런타임에 특정 동작을 할당 할 수있는 오리 예를 사용하여. 전략 패턴의 목적은 런타임에 단일 객체의 동작 을 변경 하는 것이지만, Duck의 상속을 사용하여 다양한 유형의 Duck의 동작을 변경하는 것입니다.
관련성?
Duck의 컨텍스트 상속이 전략 패턴과 관련이 없거나 오리 유형이 다양하고 또한 행동 패턴을 변경하는 것이 전략 패턴을 채택해야하는 좋은 이유입니까? 둘 다 변경해야하는 상황이 전략 패턴을 사용해야하는 좋은 이유가됩니까? 왜 이것을 전략 패턴 예제로 포함합니까?
더 간단한 예
Duck 클래스 (파생 클래스 없음)만으로이 예제를 더 단순화 할 수 있습니까? 그런 다음 하나의 오리 개체를 구현할 때 자체 개체 유형에 의존하지 않는 특정 상황에 따라 다른 동작을 할당 할 수 있습니다. 예를 들어 : 날씨에 따라 FlyBehavior가 변경되거나 시간 또는 오리의 배고픈 정도에 따라 QuackBehavior가 변경됩니다. 나는 이것이 책의 문제와는 다른 문제를 해결할 것이라는 것을 알고 있지만, 내가 찾고있는 것은 대체 할 관련 전략 패턴 예입니다.
위의 예가 전략 패턴을 구성합니까?
편집하다:
컨텍스트 상속없이 전략 패턴 인 Hunter.java 및 solver.py 보다 엄격하게 준수하는 2 가지 간단한 전략 패턴 예제를 찾는 데 성공했습니다 .