只有打破汽車的模型成將被暴露作爲獨立的實體件汽車的範圍之外。另一種思考的方式是,你真的瞭解你開車時如何開始駕駛汽車?就典型的駕駛員而言,引擎蓋下的所有東西都是一個大的(嘈雜的)黑匣子。汽車工程師知道汽車所有者需要維修的通用部件,並明確地爲不同級別的用戶交互設計了這些部件,例如油尺或冷卻液儲液器補充蓋。
你可以模型的每一輛車?當然。模擬單個火花塞有幫助嗎?可能不會。
您是否需要具有顏色或尺寸等不同屬性的汽車?您是否需要具有乘客或牽引能力等不同功能的汽車?一個不同的地方是如果你需要不同行爲的汽車。這是您真正需要考慮建模具有屬性的Driver對象的地方,從反應時間等簡單的對象到侵略性等複雜的對象。
將車輛建模爲面向對象或繼承的示例是有問題的,因爲這些示例沒有真正解釋定義類的基本屬性之間的真正區別。這對StackOverflow並不新鮮,但是這個問題也不是重複的,see this SO thread。我和我的一位朋友進行了同樣的討論,併發布了log of it on my blog。閱讀FAA認可的不同類型飛機,以及每種類型的規章如何細分。有很多不同類型的飛機,最大的區別在於動力和無動力。
檢查出definitions used by the FAA:
飛機意味着用於 或擬用於 空氣飛行的裝置。
飛機指由發動機驅動的 固定翼飛機大於在飛行通過空氣的針對 其翅膀 動態反應所支持的空氣, 重。
飛艇指由發動機驅動的 比空氣輕的飛行器,可以是 轉向。
還有比空氣輕且比空氣重的空氣。熱氣球沒有動力,比空氣輕。一個飛艇是動力和輕於空氣。滑翔機沒有動力,比空氣重。波音757動力強勁,比空中重,但增加了另一類「固定翼」,這與直升機不同,它的動力和重量都比空氣強,但是是「旋轉翼」。
這裏是一個表的形式前四:
| Powered | Unpowered
---------------------------------------------------
Lighter-than-air | Blimp | Hot-air balloon
Heavier-than-air | 737 | Glider
你得到的圖片。
你不能只是說你會與汽車分開建模發動機,因爲沒有發動機的汽車可能是一個完全不同的動物。沒有引擎的汽車就像一輛拖車,它也沒有引擎,但從來不會。在這些情況下,既不是'是'也不是'具有'符合我們建造物體的具體方式。你不會宣稱一架飛艇是一架「比空氣輕的飛機」,熱氣球也是如此。事實上,他們都比空氣輕,除了他們利用的物理外,並沒有以任何方式使它們相關。區別很重要,因爲適用的規則和條例是不同的。從另一個角度來說,我們並沒有把一個軟式飛艇描述成一個具有'引擎'的熱氣球。這架飛機沒有身體上的關係,這種關係是他們應該如何處理的。
如果您不需要將對象定義爲該細節級別,則可能不需要將它們建模到該細節級別。
如果你解釋這個類庫的目的,可能會提供更多有用的建議。它打算使用哪種類型的應用程序? – 2009-12-16 08:01:26
聽起來像「學術興趣」又名作業 – Kimvais 2009-12-16 08:34:56
爲什麼他們需要建模?你是否計劃對造成它們的原子進行建模? – 2009-12-16 12:54:51