간단히 정리하면, 하나의 method를 그냥 선언하는게 아니라, 몇가지 option에 해당하는 method들을 interface로 만들어 놓고, 상속받은 자식이 그 option중에서 골라서 method로 사용하는 것이다.

한마디로 자식이 부모의 각각의 method에 대해, 여러가지 선택가능한 옵션 중 하나를 골라서 상속받음.(여러개의 method중에서 골라서 상속받는게 아니라, 1개의 method마다 옵션이 N개씩 존재하는 것임. 한마디로 5지선다로 1개를 고르는 것임)


- 부연설명

한마디로 부모 클래스에서 자속이 상속을 할 때, 모든 method를 그냥 상속 받으면 나중에 이걸 일일이 overriding시켜야하는 문제가 생길 수 있음.


그래서 아이에 method 5개를 interface로 만들어 놓고, 부모 클래스를 상속받은 자식 클래스가, 이 5개의 interface 중에서 1개를 골라서 전략적으로 "장착"하는 것임.


예를 들어 character 클래스의 이동방식에 걷기, 뛰기, 날기, 구르기 등 4가지 선택가능한 method가 있다면 이거를 각각 overriding하는게 아니라, 4가지 method를 interface로 만든다음, character 클래스를 상속받은 자식 클래스가 이 4개 중에서 1개를 골라서 장착해서 사용함.


아래 블로그에 완벽히 설명되어있음.

http://blog.naver.com/asuraiv1/50193647631

'프로그래밍' 카테고리의 다른 글

Ubuntu - virtualenv, scrapy 사용법  (0) 2015.07.31
추천하는 소프트웨어 기술  (0) 2015.03.03
CUDA Programming  (0) 2014.11.17
Python 문법과 프로그래밍  (0) 2014.06.17
디자인 패턴: 전략 패턴(Strategy Pattern)  (0) 2014.06.11
알고리즘  (0) 2014.06.11
by 곽동현 이스텔리앙 2014.06.11 22:41