2009-09-03 4 views
0

Object-Oriented Analysis and Design with Applications을 구입했습니다. 64 페이지에서 2 단락은 아래의 "is is"계층 구조에 대해 설명합니다.OOAD에 대한 설명이 필요합니다. "is a"hierarchy

"is a"계층의 경우 높은 수준의 추상화가 일반화되고 낮은 수준의 추상화가 특수화됩니다. 따라서 Flower 클래스는 Plant 클래스보다 추상화 수준이 높습니다. 내가 알고있는 것처럼

, 나는 식물보다 식물보다는 추상화의 낮은 수준에서 다음 꽃 클래스는 그 꽃을 일반화라고 생각합니다.

이 시점에서 내 이해가 정확하거나 책이 정확한지 알고 싶습니까? 제발 분명히 해주세요.

답변

2

동의합니다.이 견적이 잘못되었습니다. 여기서 정의에 따라 Plant는 Flower보다 추상화 수준이 높습니다. 정의가 정확하고 예제의 이름이 바뀝니다.

0

인용 한 내용이 옳지 않은 것으로 들립니다. 플라워가 식물을 상속 받았다고 가정 할 때 식물이 플라워보다 더 높은 추상화 수준에 있다는 것을 이해했을 것입니다. 따라서,

꽃을 is a 공장

하지만

식물은 반드시 꽃 아닌

0
나는 문 "A 꽃은 식물이다"를 언급하지 않았다

는에 사실이다 내 의견은 식물 있다 - 꽃. 나는 약간의 문맥이 빠져 있다고 생각한다.

나는이 책의 저자가 상속 계층에 대해 설명하고 있다고 생각합니다. 엔티티가 계층 구조의 최상위에 있으면 계층 구조에서 그보다 아래에있는 것보다 더 일반화 (또는 추상화)되어야합니다. 엔티티에서 다른 엔티티을 상속 받지만 부모보다 추상적입니다 (구체적인 클래스를 상속하는 추상 클래스로 변환하는 것은 좋지 않은 디자인입니다).

+0

꽃을 "꽃을 피우는 식물"또는 "피지 식물의 생식 구조"로 생각하는지에 따라 다릅니다. 나는 그들이 첫번째 것을 의미한다고 생각한다. 이 경우 '꽃'이 '식물'에서 물려 받는다는 것은 의미가 있습니다. – Blixt

1

is-a 계급을위한 식물과 꽃 예제는 아마도 내가 들었던 최악의 경우 일 것입니다!

자동차는 차량입니다. 개는 포유 동물입니다. 예금 계좌는 a (n) 계좌입니다. 이 모든 것은 전형적이며 쉽게 이해할 수있는 예입니다.

관련 문제