最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

代碼重構(gòu) 之 條件轉(zhuǎn)換

2022-12-09 12:19 作者:GC_CH  | 我要投稿

????代碼重構(gòu)的目的是讓代碼更賞心悅目.

????代碼重構(gòu)的方法是等價變換, 也就是使用等價的代碼來替換原來的代碼.

????條件轉(zhuǎn)換是代碼重構(gòu)的一種常用方法, 即條件語句與條件表達(dá)式的相互轉(zhuǎn)換.

邏輯與

????邏輯與表達(dá)式 a && b 等價于 兩個嵌套的 if 語句, 其中a和b是任意表達(dá)式

?

邏輯或

?????邏輯或表達(dá)式 a ||?b?等價于?兩個并列的 if 語句, 其中a和b是任意表達(dá)式

????注意 : 第2個 if 語句屬于第一個 if 語句的 else 部分!

邏輯非

????邏輯非表達(dá)式 !a 等價于?if (a) 的 else

????通常不需要將邏輯非表達(dá)式轉(zhuǎn)換為 if ... else ... 的形式, 但是從 if ... else ...的形式轉(zhuǎn)為?邏輯非表達(dá)式的情況是常見的, 比如:

使用條件

????如果 a 或者 b 是很復(fù)雜的表達(dá)式, 那么可以考慮轉(zhuǎn)換成兩個嵌套 if 語句的代碼 ; 如果 a 和 b 都是很簡單的表達(dá)式, 那么可以考慮轉(zhuǎn)換成一個 邏輯運(yùn)算符連接的表達(dá)式.

順序 if 語句

????如果有多個順序執(zhí)行的 if 語句, 那么可以使用 循環(huán)語句來重構(gòu)這些 if 語句, 也就是用函數(shù)來封裝各個要執(zhí)行的語句, 然后循環(huán)遍歷每個條件來執(zhí)行該條件對應(yīng)的函數(shù).

????

3個順序執(zhí)行的if語句

????

????每個條件對應(yīng)的要執(zhí)行的語句分別創(chuàng)建一個函數(shù)

????最后修改成的代碼如下:

????這種方式看起來復(fù)雜, 但是卻很容易擴(kuò)展, 只需要添加一個函數(shù), 然后增加表conditions的元素就行了. 舉個例子, 要做很多個單元測試(測試代碼是否有bug), 那么要測試某個函數(shù), 只需要把它對應(yīng)的條件設(shè)為true, 就會自動執(zhí)行這個函數(shù); 條件設(shè)為false, 則不會測試那個函數(shù).

????各個函數(shù)的參數(shù)不同怎么辦呢 ? 對每個不同參數(shù)的函數(shù)建立一個 void () 的函數(shù)來調(diào)用它就行了.

????注意 : 如果順序執(zhí)行的 if 語句中間還有其他代碼, 那么通常不能用這種方法替換, 因?yàn)橹虚g的代碼可能影響后面的 if 語句. 解決方法是 : 把這段中間的代碼也看成一個 if (true) 的語句, 把它也加入到表中.

代碼重構(gòu) 之 條件轉(zhuǎn)換的評論 (共 條)

分享到微博請遵守國家法律
信宜市| 房产| 梧州市| 托里县| 台中县| 正定县| 新巴尔虎右旗| 长岛县| 缙云县| 虹口区| 保康县| 灵川县| 西昌市| 清新县| 盐城市| 万荣县| 蒙城县| 宁夏| 个旧市| 静宁县| 榆社县| 元阳县| 平罗县| 桂阳县| 桐梓县| 乌拉特前旗| 吉林市| 吴江市| 天门市| 嵩明县| 图木舒克市| 静安区| 五河县| 佛教| 深水埗区| 晴隆县| 诸暨市| 永年县| 屏南县| 辽阳市| 西丰县|