요구사항 : 오리가 날 수 있는 기능을 추가해주세요.
시도3을 구현한 코드이다. 객체지향적인 관점에서 주목해야할 것은 변화하는 부분을 책임으로 분리해 별도의 객체에 할당한 점이다.
// 나는 행위와 관련된 객체들
// 타입은 FlyBehavior이다.
public interface FlyBehavior {
public void fly();
}
public class FlyWithWings implements FlyBehavior{
@Override
public void fly() {
System.out.println("날고 있어요!!");
}
}
public class FlyNoWay implements FlyBehavior {
@Override
public void fly() {
System.out.println("저는 못 날아요");
}
}
// 우는 행위와 관련된 객체들
// 타입은 QuackBehavior이다.
public interface QuackBehavior {
public void quack();
}
public class Quack implements QuackBehavior {
@Override
public void quack() {
System.out.println("꽥");
}
}
public class MuteQuack implements QuackBehavior {
@Override
public void quack() {
System.out.println("<< 조용~ >>");
}
}