Saturday, February 22, 2014

Favor COMPOSITION over inheritance

@desc
  : 상속보다는 구성을 활용한다.
  : 구성을 이용하면 알고리즘군을 별로 클래스 집합으로 캡슐화 할 수 있다.
  : 구성을 이용하면 행동 인터페이스 구현을 통해 실행시에 행동을 바꿀 수 있다.

@example
  : Duck Class, Fly Behaviors

Ex1. Behavior Interface












Ex2. Setting Behavior Dynamically
Duck model = new ModelDuck();
model.performFly(); // 저는 못 날아요.

model.setFlyBehavior(new FlyRocketPowered());
model.performFly(); // 로켓 추진으로 날아갑니다!


@reference
  : Head First Design Patterns
    by Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, 1st Ed.

No comments:

Post a Comment