2009-09-03 34 views
0

我有購買Object-Oriented Analysis and Design with Applications,在第64頁第2段解釋關於「是」像下面的層次結構。需要一些解釋與OOAD「是一個」層次

就「它是」一個層次而言,高層次的抽象是泛化的,而低層次的抽象是專門化的。因此,我們說一個Flower類比一個Plant類更高的抽象層次。

按我的理解,我認爲工廠是更籠統地說花那麼花類是在較低的抽象層次比工廠。

我想知道在這一點上我的理解是正確的還是該書是正確的?請澄清我。

回答

2

我同意,這個引用是錯誤的。通過這裏的定義,Plant處於比Flower更高的抽象層次上:定義是正確的,示例中的名稱是轉置的。

0

你所引用的內容聽起來不太正確。如果花從植物繼承,我會理解植物比花更高的抽象層次。因此,

一個花卉植物is a

電廠A廠不一定是花

0

我不會說的聲明 「花是植物」 是真實的,我的意見一個工廠has-a花。我認爲有一些背景缺失。

我認爲本書的作者正在解釋關於繼承層次結構。如果一個實體位於層次結構的頂部,它就是或者需要比層次結構中的實體更普遍(或抽象)。讓一個實體繼承另一個實體,但比其父實體更抽象(轉化爲繼承於具體類的抽象類)是一種糟糕的設計。

+0

這取決於你是否將花想成「有花的植物」或「被子植物的繁殖結構」。我認爲他們是第一個。在這種情況下,'Flower'繼承'Plant'是有意義的。 – Blixt 2009-09-08 09:17:05

1

植物和花的例子是一個層次結構可能是我聽過的最糟糕的!

汽車是一輛車。一隻狗是一種哺乳動物。儲蓄賬戶是一個(n)賬戶。所有這些都是典型和易於理解的例子。