블로그 이미지
이태원에서 사는 다섯식구의 무직 가장. 흰둥에미

카테고리

분류 전체보기 (184)
Itaewon (2)
ryu's?? (1)
20121210이전 (20)
20130827이전 (147)
soo'study (13)
Total38,798
Today6
Yesterday12

항목 32 - 35

20130827이전/EC++ / 2013.01.08 15:18

항목 32. public 상속 모형은 반드시 "is a..."를 따르도록 만들자.

      - 기본 클래스에 적용되는 모든 것들이 파생 클래스에 그대로 적용되어야 함.


항목 33. 상속된 이름을 숨기는 일은 피하자.

      - 파생 클래스의 이름은 기본 클래스의 이름을 가림, 가려진 이름은 using선언이나, 전달 함수를 이용해 쓸 수 있음.


항목 34. 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자.

      - 순수 가상 함수를 선언하는 목적은 파생 클래스에게 함수의 인터페이스만을 물려줌.

      - 단순 가상 함수는 인터페이스 상속과 더불어 기본 구현의 상속도 가능하게 함.

      - 비가상 함수는 인터페이스 상속과 더불어 필수 구현도 상속하게 함.


항목 35. 가상 함수 대신 쓸 것들도 생각해 두는 자세를 시시때때로 길러 두자.

      - 비가상 인터페이스 관용구를 통한 템플릿 메서드 패턴

         (비가상 함수에서 가상 함수를 호출하게 하고, 파생 클래스에서는 그 가상 함수들을 오버라이딩)

      - 함수 포인터를 이용한 strategy pattern, 파생 클래스 생성시 필요한 함수의 포인터를 전달하여, 각각의 동작을 정함.

      - tr1::function을 이용한 strategy pattern, 함수 포인터를 이용한 것과 비슷한 개념으로 융통성이 증가.

      - 고전적인 strategy pattern,

        파생 클래스 생성시 원하는 동작의 함수가 구현된 클래스를 넘기고, 그 클래스의 가상함수를 통해 각자의 동작을 수행.

'20130827이전 > EC++' 카테고리의 다른 글

항목 41 - 45  (1) 2013.01.09
항목 36 - 40  (0) 2013.01.08
항목 32 - 35  (0) 2013.01.08
항목 29 - 31  (0) 2013.01.03
항목 26 - 28  (0) 2012.12.22
항목 22 - 25  (0) 2012.12.22
Posted by 흰둥에미

최근에 달린 댓글

최근에 받은 트랙백

글 보관함