Strategy Pattern (전략 패턴) #164
Unanswered
JoisFe
asked this question in
Behavior-Pattern(행동 패턴)
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Strategy Pattern (전략 패턴)
추가 요구 사항
위 구조에서 오리가 날 수 있도록 기능을 추가해줘
fly() 메서드를 추가
위 방식의 심각한 문제점
Duck 이라는 슈퍼 클래스에 fly() 메서드를 추가하면서 일부 서브클래스에 적합하지 않은 행동이 추가됨!
코드의 재사용을 위해
상속
을 사용했으나 유지보수가 힘들어짐다른 방법으로 해결하기
quack() 메서드 처럼 fly() 메서드도 추상 메서드로 두어 구현체가 오버라이드 하면 되잖아..
문제점
꽥소리를 내지 않거나 날지 않은 오리가 있다면??
또 다른 방법
quack(), fly() 메서드를 Duck 슈퍼클래스에서 빼내어 quack() 메서드가 들어있는 Quackable 인터페이스, fly() 메서드가 들어있는 Flyable 인터페이스를 만들어 해당 기능을 가지는 오리만 해당 인터페이스를 구현하게 하면 됨
Reference
Beta Was this translation helpful? Give feedback.
All reactions