항목 40. 레이어링을 통해 가지고 있는 것과 사용하여 구현된것을 모델링하도록 한다.
이유
1. 클래스 디자인의 일관성과 편의성을 제공해주기 때문이다.
해결방법
1. is a 관계 계승과 has a 관계(is implemented in terms of 관계)의 차이점을 인지해라.
개인적인 생각
1. public 상속을 통해서도 구현은 가능하다. 하지만 일관성이 떨어진다. 이 일관성이 떨어지는 시점에서, 클래스 디자인은 무너지게 된다.
2008/07/18 12:15:47 추가 설명, 일관성이랑 is-a 관계의 일관성을 뜻한다.
2. 그래서 상속관계에 대해서는 충분히 사용법에 따라 분류해야 한다.
예) isa 와 hasa 의 차이점을 이해하여,
3. 사람은 한 손으로 다른것을 들고 있을땐, 그 손은 다른것을 들수 없으니, void* 포인터를 가지고 있을경우, 여러 필요한 것들을 장착하고 뺄수 있을듯 싶다. .. 이럴 경우 문제는 .. 현재 들고 있는것이 무엇인지 알수 없는 점인가.. 이건 좀 고려해보자.
2008/07/18 12:15:47 개인적인 생각
... 이건 뭐 정리도 아니고 .. 목차 쯤 되는 정리..? ㅋㅋ
이유
1. 클래스 디자인의 일관성과 편의성을 제공해주기 때문이다.
해결방법
1. is a 관계 계승과 has a 관계(is implemented in terms of 관계)의 차이점을 인지해라.
개인적인 생각
1. public 상속을 통해서도 구현은 가능하다. 하지만 일관성이 떨어진다. 이 일관성이 떨어지는 시점에서, 클래스 디자인은 무너지게 된다.
2008/07/18 12:15:47 추가 설명, 일관성이랑 is-a 관계의 일관성을 뜻한다.
2. 그래서 상속관계에 대해서는 충분히 사용법에 따라 분류해야 한다.
예) isa 와 hasa 의 차이점을 이해하여,
3. 사람은 한 손으로 다른것을 들고 있을땐, 그 손은 다른것을 들수 없으니, void* 포인터를 가지고 있을경우, 여러 필요한 것들을 장착하고 뺄수 있을듯 싶다. .. 이럴 경우 문제는 .. 현재 들고 있는것이 무엇인지 알수 없는 점인가.. 이건 좀 고려해보자.
2008/07/18 12:15:47 개인적인 생각
... 이건 뭐 정리도 아니고 .. 목차 쯤 되는 정리..? ㅋㅋ
'책 정리 > Effective C++ 2판' 카테고리의 다른 글
항목 45 ~ 50까지 요약정리 (0) | 2008.05.14 |
---|---|
항목 44. 의미하는 바를 표현하도록 하라; 자신이 표현한 것의 의미를 이해하도록 하라. (0) | 2008.05.14 |
항목 43. 다중 계승을 바르게 사용하도록 하라 (1) | 2008.05.14 |
항목 42. private 계승을 바르게 사용하라. (0) | 2008.05.14 |
항목 41. 계승과 템플릿과의 차이점을 이해한다. (0) | 2008.05.14 |
항목 39. 계층도의 아래쪽 클래스로 다운캐스트 하지 않도록 한다. (0) | 2008.05.12 |
항목 38. 계승된 부재 인자값을 재정의하지 않도록 한다. (0) | 2008.05.12 |
항목 37. 계승된 비가상 함수를 재정의하지 않도록 한다. (2) | 2008.05.12 |
항목 36. 인터페이스 계승과 구현의 차이점을 이해해라 (0) | 2008.05.12 |
항목 35. public 계승이 isa를 모델링하도록 하라. (0) | 2008.05.11 |
최근댓글