在開發時,如何創建小類來表示少量數據結構?例如,作爲一個簡化的例子,一個程序使用一串字符串來表示某物的名字,例如,汽車。而不是將這個數組保存在一個方法或類中,將它分開並使其成爲自己的類是多麼有用?通過這種方式,我認爲它可以對自己負責,並且可以對其執行更多操作 - 驗證等,這些都可以分開保存。此外,它可以在整個系統中輕鬆重複使用。但是,它在哪裏停止,即在汽車的例子中,你可以繼續創建一個汽車對象等等。它真的可以永遠不會結束嗎?分離代碼 - 模塊化
1
A
回答
0
只要您重複代碼以對數據結構進行操作,就可以做到這一點。
Chris B.對相關數據做了一個很好的說明。請參閱Extract Class重構示例。
1
有一些指導我用它來確定何時我需要重構的數據結構到自己的類:
我是否儲存了大量相關數據?如果您發現自己存儲了幾個數組,並將它們作爲一個單元來操作,那麼最好存儲包含對象的單個數組。
這些數據結構是否暴露給其他類?如果其他類直接暴露給數據,最好將數據封裝在自己的類中,這樣可以很容易地將概念模型和實際模型分開。
我是否經常對數據執行操作?存儲一組名稱可能沒有問題,但是如果您開始向包裝類添加
validateName
和checkName
等方法,重構並將這些方法放在Name
類本身可能是個好主意。
請記住:這是經常有很多更容易和更清潔把一個體面的對象模型代替了前面,而不是試圖和移植一個在事後。你不應該任意做它,但是當你正在通過你的程序時,你應該注意什麼時候難以控制你的數據結構 - 這是一個好兆頭,你應該根據需要重構它們。
相關問題
- 1. 模塊分離
- 2. hmvc,模塊化分離,模塊化擴展,概念說明
- 3. codeigniter模塊化分離問題php mvc
- 4. 當遷移催化劑網站離開模塊代碼
- 5. 模塊化算術的優化代碼
- 6. 代碼分離 - 在AngularJS
- 7. 分離UIAppearence代碼
- 8. PHP代碼分離
- 9. 逃離內嵌代碼塊
- 10. 我想使用javascript模塊化代碼
- 11. 如何編寫模塊化Android代碼
- 12. 如何模塊化Rails代碼?
- 13. 如何模塊化nodejs + expressjs代碼
- 14. 變化的Joomla模塊前端代碼
- 15. 簡化代碼塊
- 16. 迭代模塊化
- 17. 用動態模塊分割代碼?
- 18. 如何將JavaScript代碼分成模塊?
- 19. 分離片段代碼和MainActivity代碼
- 20. CakePHP中的代碼分離
- 21. 的XCode的代碼分離
- 22. TypeScript - 分離代碼輸出
- 23. 碼頭分離模式
- 24. 美化來自C#代碼塊的剝離仿製品
- 25. VSTO Excel功能區選項卡 - 將代碼(.NET)分離爲模塊
- 26. 離子:無法實例化模塊ngCordova
- 27. Angular2,突破變化 - 在不同模塊中分離
- 28. Codeigniter HVMC模塊化分離擴展URL重寫/路由
- 29. bash:簡化代碼塊
- 30. 優化此代碼塊
我認爲這會對你提出的問題更清楚。有時候,在我看來,OO代碼有時可能會變得太過分了,但是你到底在問什麼?我看到一個場景,但看起來很模糊。 – 31eee384 2010-07-14 21:43:42
好吧,所以說我需要有一個對象集合,它們基本上都是字符串作爲名稱,並且可能再次以字符串格式和可能添加的任何其他屬性進行描述。最好把它放在什麼類的需要的地方,或者更好地把它作爲一個對象,儘管它只有少數屬性是字符串。此外,如果它將成爲自己的對象,那麼它的數據驗證可以由它自己的構造函數來處理,而不是在其他地方處理。這對我來說似乎是合乎邏輯的,但也許有點過分。 – Bill 2010-07-14 21:49:18
良好設計的目標是最終提供可維護性和清晰度,而不會有真正的硬性規則和快速規則。你當然可以繼續下去,製造麻煩,並模擬你的項目可能與之交互的整個宇宙。 這就是理解你的域中有什麼對象很重要的地方,並且在建模時,你會知道什麼時候給定對象的簡單集合就足夠了,或者需要更多邏輯單元。 – apiri 2010-07-14 21:52:43