簡體   English   中英

OO php中的代碼改進

[英]betterment of code in OO php

我為我的項目使用php OO。 我的應用程序中大約有7個家庭。因此,我必須使用switch並在需要檢查家庭的每個文件中進行操作。 因此,我認為性能會因此受到影響。 因此,有什么辦法可以消除這些開關情況,並使用一些設計模式或類似方法。 目前的想法是為每個家庭有一個單獨的代碼庫,我對此並不完全滿意。 因此,尋找各種解決方案來解決此問題。

我只能從他的書《重構:改進現有代碼的設計》中引用馬丁·福勒。

切換語句

面向對象代碼最明顯的症狀之一是它相對缺乏switch(或case)語句。 switch語句的問題本質上是重復問題。 通常,您會發現在程序的不同位置散布着相同的switch語句。 如果向開關添加新子句,則必須找到所有這些開關,語句並進行更改。 面向對象的多態性概念為您提供了一種解決此問題的優雅方法。

大多數情況下,您看到switch語句時應考慮多態。 問題是多態性應在何處發生。 通常,switch語句會打開類型代碼。 您需要承載類型代碼值的方法或類。 因此,請使用Extract Method提取switch語句,然后使用Move Method將其放入需要多態的類。 此時,您必須決定是用子類替換類型代碼還是用狀態/策略替換類型代碼。 設置繼承結構后,可以使用“將條件替換為多態”。

考慮購買和閱讀這本書,這是我讀過的最珍貴的作品之一。

該模式將是具有多態性的條件重構

我們的想法是使各種家庭類型成為自己的對象。 鏈接的文章摘自Martin Fowler的書《 重構:改進現有代碼的設計》 ,該書已在其他答案中引用。 實際上,鏈接的站點具有本書的全部內容。

有關更多信息, 請訪問http://www.refactoring.com/。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM