代碼壞味道之過長的參數列
1.為什麽會出現過長的參數的函數呢?
出現過長的參數列,我們在編敲代碼的時候職責劃分不清晰,一個函數做了太多的事情。可能會讓調用者傳入很多其它的參數進行功能的實現。第二函數封裝不合理,導致調用函數的內部變量成為封裝函數的參數。
2.當我們遇上了過長的參數函數怎麽辦?
當我們遇上了過長的參數列的函數有兩種方法來解決。第一。通過重載參數把程序中臨時不須要的函數的參數進行封裝,降低過長的參數列。第二。通過封裝參數列對象,在封裝的時候盡量將職責相近的參數放在一起,這樣做提高了封裝對象的內聚性。
3.如何避免在平時的編碼中出現過長的參數列?
那麽我們如何來避免我們在編碼中出現過長的參數列呢?在使用SSH或者Spring MVC的時候我們都會接觸到非常多的O,我們能夠將過長的參數列封裝成為一個傳輸數據對象,這樣做即降低了參數列又提升了代碼 的重用性。
其次我們合理的封裝函數。我常常採用的方式就是編寫完畢一個函數之後回過頭來看看這個函數的職責範圍,將多余一個職責的函數進行剝離。讓每個函數都僅僅具有單一的一個職責。這樣做了之後,在須要封裝參數對象的時候就能夠提煉出內聚性非常高的代碼了。
代碼壞味道之過長的參數列
相關推薦
代碼壞味道之過長的參數列
mar 方式 怎麽辦 提高 可能 功能 pos 常常 代碼壞味道 1.為什麽會出現過長的參數的函數呢? 出現過長的參數列,我們在編敲代碼的時候職責劃分不清晰,一個函數做了太多的事情。可能會讓調用者傳入很多其它的參數進行功能的實現。第二函數封裝不合理,導致調
Refactoring之——代碼的壞味道(四)過長參數列
每一個 頻繁 數列 發的 blog font 字段 代碼的壞味道 introduce 1.1.4 Long Parameter List(過長參數列) 特征:一個方法有超過三四個的參數。
【重構】 程式碼的壞味道總結 Bad Smell (一) (重複程式碼 | 過長函式 | 過大的類 | 過長引數列 | 發散式變化 | 霰彈式修改)
膜拜下 Martin Fowler 大神 , 開始學習 聖經 重構-改善既有程式碼設計 .程式碼的壞味道就意味著需要重構, 對程式碼的壞味道瞭然於心是重構的比要前提;.作者 : 萬境絕塵.1. 重複程式
敲代碼非常難之去除字符串的空白字符
builder 平衡點 for cep 算法 麻煩 length 拷貝 n) 在做性能調優時,用JProfiler測試Web應用的性能。發現有個replaceBlank函數占用了10%的CPU時間。進去看了下,是個簡單的用正則去除XML文檔裏空白字符串的功能。可是這個簡
Java代碼審計連載之—SQL註入
問題 連載 edi 初學者 epo lte where color 用戶 前言近日閑來無事,快兩年都沒怎麽寫代碼了,打算寫幾行代碼,做代碼審計一年了,每天看代碼都好幾萬行,突然發現自己都不會寫代碼了,真是很DT。想當初入門代碼審計的時候真是非常難,網上幾乎找不到什麽java
Java代碼審計連載之—添油加醋
安全 人的 逆向思維 9.png pan 啟動 com 項目 lte 在代碼審計中,按業務流程審計當然是必須的,人工的流程審計的優點是能夠更加全面的發現漏洞,但是缺點是查找漏洞效率低下。如果要定向的查找漏洞,逆向跟蹤變量技術就顯得更加突出,如查找XSS、SQL註入、命令執行
WPS Office手機版調用接口代碼指導帖之二 [復制鏈接]
size color manage 指導 found bin rac start tk1 原文鏈接:http://bbs.wps.cn/thread-22349340-1-1.html 從V5.1版本開始,WPS移動版本提供了額外的功能,可以供第三方程序通過集成的方式
nova創建虛擬機源碼分析系列之七 傳入參數轉換成內部id
接口 函數 device 博文 nat build 消息 通過 rop 上一篇博文將nova創建虛機的流程推進到了/compute/api.py中的create()函數,接下來就繼續分析。 在分析之前簡單介紹nova組件源碼的架構。以conductor組件為例: 每個組件
【代碼總結】Struts2 Action接受參數方式的對比
AI nco form () 應用 username nac ring imp 一、屬性方式 1、Action中:對應表單參數的setter、getter 2、頁面中 :Form中元素name取值屬性名 <s:property value="屬性名" />
3.10 計算代碼運行的時長
waitgroup AC code OS pack down RM mark new package main import ( "fmt" "sync" "time" ) func main() { t := time.NewTim
【U3D入門小白教程——代碼篇】之三:常見腳本函數
force avi log tar 啟動 for gravity vector 教程 個人學習第三章節:常見腳本 1.Awake( )與Start() Awake( )在遊戲創建時調用,用於設置遊戲初始化的參數 Start( )在腳本被調用,執行在所有Update( )之
那些年被吐槽的JavaScript代碼風格你寫過多少?老師傅來打通你的任督二脈!
不同 加載 extends list() lang foreach 方向 通過 避免 現在寫代碼比以前好多了,代碼的格式都有 eslint、prettier、babel(寫新版語法) 這些來保證,然而,技術手段再高端都不能解決代碼可讀性(代碼能否被未來的自己和同事看懂)的問
代碼審計準備之Thinkphp3
是否 lock 無需 arr 必須 連接參數 服務 通過 true 下載: 獲取ThinkPHP的方式很多,官方網站(http://thinkphp.cn)是最好的下載和文檔獲取來源。 官網提供了穩定版本的下載:http://thinkphp.cn/down/frame
go語言調度器源代碼情景分析之六:go匯編語言
-s col src 內存 相關 我們 ima 操作數 amd64 go語言runtime(包括調度器)源代碼中有部分代碼是用匯編語言編寫的,不過這些匯編代碼並非針對特定體系結構的匯編代碼,而是go語言引入的一種偽匯編,它同樣也需要經過匯編器轉換成機器指令才能被CPU執行。
我的重構識別代碼的壞味道
temp bst ted sub method 過長參數列 數列 dup 類型 壞味道1>相同 Duplicated Code--->Extract Method-->Pull Up Method 相似 Form Template Method---&g
安卓開發之配置參數幫忙寫代碼 一
str size arr www 流程 () 安卓開發 ttext obj 在尋常的安卓開發中,流程都是這種,先把要須要顯示的界面繪制出來,在發送一個http請求。
Java8新特性之:行為參數化傳遞代碼
Java8 行為參數化 行為參數化:一個方法接受多個不同的行為(或戰略)作為參數,並在內部使用他們,完成不同的行為的能力。 public interface ApplePredicate { /** * 謂詞(選擇標準) * @param apple * @re
Redis之sentinel檔案控制代碼過小解決方案
異常說明 Increased maximum number of open files to 10032 (it was originally set to 1024). 翻譯: 將開啟檔案的最大數量增加到10032(它最初設定為1024)。 解決辦法
java中如何在代碼中判斷時間是否過了10秒
cal () bsp som ret pan div color end long previous = 0L; ... { Calendar c = Cale
【代碼學習】PHP面向對象之抽象類與接口
部分 truct 中國人 protect nds 16px 使用 function col 一、什麽是抽象方法? 一個方法如果沒有方法體(不使用"{}",直接使用分號結束的方法,才是沒有方法體的方法),則這個方法就是抽象方法 1、聲明一個方法,不使用{},而直接分號結束