2010-07-14 88 views
1

在開發時,如何創建小類來表示少量數據結構?例如,作爲一個簡化的例子,一個程序使用一串字符串來表示某物的名字,例如,汽車。而不是將這個數組保存在一個方法或類中,將它分開並使其成爲自己的類是多麼有用?通過這種方式,我認爲它可以對自己負責,並且可以對其執行更多操作 - 驗證等,這些都可以分開保存。此外,它可以在整個系統中輕鬆重複使用。但是,它在哪裏停止,即在汽車的例子中,你可以繼續創建一個汽車對象等等。它真的可以永遠不會結束嗎?分離代碼 - 模塊化

+1

我認爲這會對你提出的問題更清楚。有時候,在我看來,OO代碼有時可能會變得太過分了,但是你到底在問什麼?我看到一個場景,但看起來很模糊。 – 31eee384 2010-07-14 21:43:42

+0

好吧,所以說我需要有一個對象集合,它們基本上都是字符串作爲名稱,並且可能再次以字符串格式和可能添加的任何其他屬性進行描述。最好把它放在什麼類的需要的地方,或者更好地把它作爲一個對象,儘管它只有少數屬性是字符串。此外,如果它將成爲自己的對象,那麼它的數據驗證可以由它自己的構造函數來處理,而不是在其他地方處理。這對我來說似乎是合乎邏輯的,但也許有點過分。 – Bill 2010-07-14 21:49:18

+0

良好設計的目標是最終提供可維護性和清晰度,而不會有真正的硬性規則和快速規則。你當然可以繼續下去,製造麻煩,並模擬你的項目可能與之交互的整個宇宙。 這就是理解你的域中有什麼對象很重要的地方,並且在建模時,你會知道什麼時候給定對象的簡單集合就足夠了,或者需要更多邏輯單元。 – apiri 2010-07-14 21:52:43

回答

0

只要您重複代碼以對數據結構進行操作,就可以做到這一點。

Chris B.對相關數據做了一個很好的說明。請參閱Extract Class重構示例。

1

有一些指導我用它來確定何時我需要重構的數據結構到自己的類:

  • 我是否儲存了大量相關數據?如果您發現自己存儲了幾個數組,並將它們作爲一個單元來操作,那麼最好存儲包含對象的單個數組。

  • 這些數據結構是否暴露給其他類?如果其他類直接暴露給數據,最好將數據封裝在自己的類中,這樣可以很容易地將概念模型和實際模型分開。

  • 我是否經常對數據執行操作?存儲一組名稱可能沒有問題,但是如果您開始向包裝類添加validateNamecheckName等方法,重構並將這些方法放在Name類本身可能是個好主意。

請記住:這是經常有很多更容易和更清潔把一個體面的對象模型代替了前面,而不是試圖和移植一個在事後。你不應該任意做它,但是當你正在通過你的程序時,你應該注意什麼時候難以控制你的數據結構 - 這是一個好兆頭,你應該根據需要重構它們。