2013년 8월 8일 목요일

[2주차 5일] 상속(Inheritance) 4 - 상속의 한계(Design Pattern - Decorator Pattern)

상속의 한계

: 불필요한 메서드까지 상속받아서 클래스 코드가 무거워 진다.

기본로봇에 여러 기능을 추가해나가는데, 고객이 총쏘는 로봇, 꼬리있는 로봇, 땅파는 로봇, 꼬리있고 땅파는 로봇을 원한다고 가정해 보자.

꼬리있고 땅파는 로봇을 만들기 위해서 불필요한 총기능까지 상속받아야 하는 상황이 발생한다.



Decorator 패턴

: 상속의 한계를 극복하는 방법으로 기본 클래스꾸미기 클래스로 나누어서 선택적으로 쓰고 싶은 특징이나 기능을 손쉽게 가져다 쓸 수 있는 방법이다.
기본로봇 r1 = new 기본로봇();
꼬리 r2 = new 꼬리(r1);
땅파기 r3 = new 땅파기(r1);

위와 같이 처리하면 r1은 불필요한 총기능을 빼고 꼬리있고 땅파는 로봇인 된것이다.

댓글 없음:

댓글 쓰기