日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

代码中的坏味道

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 代码中的坏味道 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  寫了半年的代碼,對面向對象還是只有個初步的了解,還不能達到熟練運用的地步,但是從半年的編碼中,隱隱約約感覺到影響代碼結構的壞味道的代碼。

  • 首先就是重復代碼,一個程序中重復代碼過多,導致維護時一旦修改就需要將所有重復的代碼都修改一遍。尤其是一些邏輯復雜的代碼或者參數過多的代碼,很容易出現某個個地方的修改不對或沒有修改到等問題。
  • 屬性放置的位置不對,例如UpdateUI作為UI的控制器,直接將UI中的一個Window的Panel定義為UpdateUI的屬性,雖然這樣做在UpdateUI中很方便的就能操作Panel,但是UpdateUI作為整個UI的控制,并不一定只針對一個Window,如果UpdateUI控制多個Window,就會導致UpdateUI中屬性過重,且大部分都是對當前Window沒有用的屬性。
  • 類的職責定位不清晰,如Window用來構建窗口,那么關于業務的邏輯就不應該還放在UI(Window)中,例如開啟統計的方法應該屬于UpdateUI,Window的作用就是創建各種UI和保存子組件的引用。
  •   對應的措施如下:

  • 重復的代碼盡量提取到一個方法中,通過調用新加的方法來解決代碼重復的問題;兩個類中的有許多類似的方法,可以考慮將兩個類抽象出一個公共的抽象父類,將重復的方法定義為父類的方法;如果兩個類之間不是同一中類型,即不適合使用繼承公共的抽象類,可以使用組合的方式解決重復代碼的問題,比如A和B中都定義了a方法,且A中有B類的引用,可以調用A.a()的位置都修改為通過b.a()來替換,去掉A中的a方法。
  • 移動屬性,通過組合的方法,將屬性移到具體對象的屬性中,然后將原來直接使用該屬性的地方修改為組合對象的新屬性的get方法,如果存在給移動屬性賦值的情況就使用組合對象的新屬性的set方法。
  • 將界面跟數據分開(MVC,聽到的很多,其實理解不深),首先在Window類中,應該只有UI組件的定義、布局,具體的數據填充應該通過一個控制類來完成例如UpdateUI。Window類中包含了一個UpdateUI的實例,當操作Window中的控件,涉及到數據操作或者界面刷新時統一通過組合對象調用UpdateUI中的方法來實現,這樣關于數據的處理(業務邏輯)始終只在UpdateUI中完成,將Window和數據分開了。Window相當于V,UpdateUI對應C。
  •   僅僅是我在重構項目的一些體會,沒有什么條理,講的也不太清晰,見諒。

    轉載于:https://www.cnblogs.com/guanmu/p/4237809.html

    總結

    以上是生活随笔為你收集整理的代码中的坏味道的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。