我想真正得到一個好主意如何在OOP術語中思考,所以我有一個半假想的場景在我的腦海中,我正在尋找有些想法。模擬大量與其他對象相關的對象(「有」)
如果我想爲不同類型的人進行互動模擬,他們每個人都可以在不同的「技能」中獲得不同的熟練水平,那麼最佳的方法是什麼?
這真的是「技能」的東西,我有點着迷。我的要求如下:
- 每個人無論是「擁有」一個技能或不
- 如果人有一技之長,他們也有與技能
-I需要一種方法來查找和相關的「熟練程度」挑選出每個具有一定技能或者某種水平的人 - 設計需要可擴展(即,我需要能夠在後面添加更多「技能」)
我考慮了以下選項:
對於我所包含的每一項技能都有一個巨大的枚舉, e人類包含一個 「int技能[TOTAL_NUM_SKILLS]」成員。該陣列將具有「未獲得技能」的零,以及1到(最大)熟練水平的「獲得技能」。
具有相同的巨人枚舉,並有專人類包含地圖與技能相關的技能(從ENUM)和數字,這樣你可以只添加所獲得的技能,地圖等一批關聯這辦法。
創建的每一個技能的具體類,並讓每個從一個抽象基類繼承(ISkill,說的),並有專人類有地圖ISkill的
真的,選項1看起來像是直截了當的沒有廢話的做法。請批評;有沒有理由不接受?有更多的面向對象的方式來做到這一點嗎?
我知道選項3現在沒有什麼意義,但是如果我決定稍後再延長這一點,讓技能不僅僅是與他們相關的熟練程度的東西(即,實際上將新動作與技能相關聯( ISkill :: DoAction等),這是否有意義作爲一個選項?
對於廣泛的問題,我只想看看這種思路是否有意義,或者如果我吠叫完全錯誤的樹
請停止標記標題和簽名帖 – 2012-02-24 16:46:45