我爲我的項目使用php OO。我的應用程序中有很多家庭,因此我必須使用開關,並在每個需要檢查家庭的文件中執行此操作。所以我覺得這樣的表演是受到影響的。所以有什麼辦法可以消除這些開關情況,並使用一些設計模式或類似的東西。目前的想法是爲每個家庭都有一個單獨的代碼庫,我不完全滿意。所以尋找各種選項來解決這個問題。OO代碼的改進php
回答
我只能從他的書「重構:改進現有代碼的設計」中引用Martin Fowler。
switch語句
之一的 面向對象的代碼的最明顯的症狀是其 比較缺乏開關(或情況)的 語句。開關 聲明的問題基本上是 重複的問題。通常你會在不同的地方找到與 程序相同的 開關語句。如果您在 中添加了一個新的子句給交換機,那麼您的 必須找到所有這些交換機, 語句並對其進行更改。 面向對象的 多態性概念爲您提供了一種優雅的方式 來處理這個問題。
大多數時候你看到一個switch語句 你應該考慮多態。 問題是多態性應該發生的地方 。開關語句 通常會打開一個類型代碼。你想要 方法或類的主機類型 代碼值。因此,使用提取方法 提取switch語句,然後使用 Move方法將其獲取到需要多態性的類 。在 那一點你必須決定是否 用 替換類型代碼或替換類型代碼 狀態/策略。當您設置了 繼承結構時,可以使用 將條件替換爲多態性。
考慮購買和閱讀這本書,這是我讀過的最珍貴的作品之一。
+1。真棒書。 – Gordon 2011-03-25 12:04:22
該模式將是Refactor Conditional With Polymorphism。
這個想法是使這些不同的家庭類型成爲他們自己的對象。鏈接的文章摘自Martin Fowler的書Refactoring: Improving the Design of Existing Code,該文章已在其他答案中引用。實際上,鏈接的網站包含了本書的全部內容。
哎呀,對不起,你是對的 – dantuch 2011-03-25 12:21:52
- 1. 可視化OO PHP代碼
- 2. php代碼改進重構
- 3. 在OO中寫這個PHP代碼
- 4. 導航OO JS代碼
- 5. PHP tidy關閉代碼改進
- 6. 這個PHP代碼可以改進嗎?
- 7. OO PHP書寫腳本的可能改進
- 8. 改進Autolayout代碼
- 9. JavaScript代碼改進
- 10. 改進VBA代碼
- 11. 正確的代碼改進
- 12. 改進LDAP的Java代碼
- 13. 需要改進的代碼
- 14. PHPStorm的PHP代碼縮進
- 15. 修改PHP代碼從php
- 16. PHP:剖析代碼和嚴格環境〜改進我的編碼
- 17. OO PHP誤解
- 18. 將程序代碼轉換爲OO
- 19. php模板OO編碼問題
- 20. php的二進制代碼(編譯php)
- 21. knitr - 更改代碼縮進
- 22. 該代碼如何改進
- 23. 改進代碼,絃樂
- 24. 改進性能代碼?
- 25. 如何改進此代碼
- 26. 改進此Jquery代碼
- 27. 我如何改進代碼?
- 28. 如何改進代碼Laravel?
- 29. 改進代碼設計
- 30. JavaScript/JQUERY改進代碼
有些代碼可以幫助我們幫助您。 – Dutchie432 2011-03-25 11:31:03
工廠模式? – 2011-03-25 11:34:20
@Mark Baker或策略 - 它取決於.. – dantuch 2011-03-25 11:54:19