這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Java中如何優(yōu)化if-else,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)10余年來(lái)致力于為客戶提供做網(wǎng)站、網(wǎng)站建設(shè)、品牌網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了近千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。為什么我們寫的代碼都是if-else?
程序員想必都經(jīng)歷過(guò)這樣的場(chǎng)景:剛開(kāi)始自己寫的代碼很簡(jiǎn)潔,邏輯清晰,函數(shù)精簡(jiǎn),沒(méi)有一個(gè)if-else,
可隨著代碼邏輯不斷完善和業(yè)務(wù)的瞬息萬(wàn)變:比如需要對(duì)入?yún)⑦M(jìn)行類型和值進(jìn)行判斷;這里要判斷下對(duì)象是否為null;不同類型執(zhí)行不同的流程。
落地到具體實(shí)現(xiàn)只能不停地加if-else來(lái)處理,漸漸地,代碼變得越來(lái)越龐大,函數(shù)越來(lái)越長(zhǎng),文件行數(shù)也迅速突破上千行,維護(hù)難度也越來(lái)越大,到后期基本達(dá)到一種難以維護(hù)的狀態(tài)。
雖然我們都很不情愿寫出滿屏if-else的代碼,可邏輯上就是需要特殊判斷,很絕望,可也沒(méi)辦法避免啊。
其實(shí)回頭看看自己的代碼,寫if-else不外乎兩種場(chǎng)景:異常邏輯處理和不同狀態(tài)處理。
兩者最主要的區(qū)別是:異常邏輯處理說(shuō)明只能一個(gè)分支是正常流程,而不同狀態(tài)處理都所有分支都是正常流程。
怎么理解?舉個(gè)例子:
//舉例一:異常邏輯處理例子 Object obj = getObj(); if (obj != null) { //do something }else{ //do something } //舉例二:狀態(tài)處理例子 Object obj = getObj(); if (obj.getType == 1) { //do something }else if (obj.getType == 2) { //do something }else{ //do something }