老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Java編程細節重構之if-else不是好代碼的原因分析

小編給大家分享一下Java編程細節重構之if-else不是好代碼的原因分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯-專業網站定制、快速模板網站建設、高性價比潼關網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式潼關網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋潼關地區。費用合理售后完善,十載實體公司更值得信賴。

前言

面向過程設計和面向對象設計的主要區別是:是否在業務邏輯層使用冗長的if else判斷。如果你還在大量使用if else,當然,界面表現層除外,即使你使用Java/C#這樣完全面向對象的語言,也只能說明你的思維停留在傳統的面向過程語言上。

平時開發中if-else用的多嗎?

其實這是個再正常不過的coding習慣,當我們代碼量小的時候用來做條件判斷是再簡單不過的了。

但對于優秀程序員來說,這并不是好代碼,

為啥?

拋開劑量談毒性都是耍流氓

在使用條件判斷語句的地方,如果代碼量小,需要判斷的場景少的話,

那么沒有比 if-else 更合適的語句,比如下面這樣

....

if(object.getIndex() > 0) {

//do something

} else {

//do other things

}

那在什么情況下 if-else 才會變差呢?

以上面的代碼為例子,當需要判斷的情況逐漸增加的時候,上面的代碼可能會變的難以維護。

在進階高級開發的路上,應該逐步培養起這種前瞻意識,

即使在代碼還在起步階段,應該要能夠看到將來代碼發展的趨勢,

比如上面的代碼,當情況越來越多的時候,if-else可能會發展出許多個分支:

Java編程細節重構之if-else不是好代碼的原因分析

這是完全可能的,以我的經驗來說就在不少項目上見過這樣的代碼。

而且代碼執行塊中的邏輯可能在幾次迭代后變的非常復雜,就像下面這樣

Java編程細節重構之if-else不是好代碼的原因分析

看到這段代碼第一感覺就是想殺個小伙伴祭天。

如何重構掉這段代碼

對于這種代碼我們重構的目標可以有兩個深度,看自己強迫癥的嚴重程度決定

· 繼續用 if-else,只達到剝離執行代碼塊

· 用工廠模式去耦合

對于這兩種其實不是非此即彼的關系,而是優化深度不同。第一種相對比較簡單,可以重構成下面這樣子

Java編程細節重構之if-else不是好代碼的原因分析

代碼清爽了很多,

現在這段代碼可以清楚的看出來都處理了哪些情況,條件判斷的代碼只關注了條件的不同,

而對于不同條件的具體處理邏輯我們剝離到了其他地方,

這樣即使寫到腦袋迷糊,也不至于說漏了哪個條件沒判斷。

進一步優化

在上面的優化之后,如何再用工廠模式來繼續重構呢?

從上的代碼看的出來,不同的條件下,執行的邏輯是不同的,那么可以把這種執行邏輯抽象出來,用多態的概念來定義不同的執行方式。

Java編程細節重構之if-else不是好代碼的原因分析

完成了這一步之后,就可以把代碼塊中不同條件下的方法抽到各個不同的具體類里面去了,

Java編程細節重構之if-else不是好代碼的原因分析

還可以進一步優化嗎?可以的,甚至這里的條件判斷都可以不要,我們可以定義一個工廠來把 new ExecutorWithTag()這件事給包了,

Java編程細節重構之if-else不是好代碼的原因分析

對工廠模式還有印象嗎,上面這段代碼在我之前的工廠模式一文里出現過,這里可以算是工廠模式的一個實際應用。

在經過這一輪重構之后,我們之前在一個類里面寫的那堆代碼已經抽離到多個不同的類里了,

現在在原來的類里的代碼變成怎樣了呢,

Java編程細節重構之if-else不是好代碼的原因分析

重構之后各個Executor和主類中的耦合已經降到很低了,

而且代碼整潔度提高了很多,之前那個類的一段50+行的代碼變成了2行,這就是重構的意義。

以上是“Java編程細節重構之if-else不是好代碼的原因分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!


標題名稱:Java編程細節重構之if-else不是好代碼的原因分析
分享鏈接:http://www.xueling.net.cn/article/piisgs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产成人精 | 中文字幕一区二区三区在线视频 | 中文字幕免费在线 | 久久9国产偷伦 | 真实国产乱子伦视频 | 亚洲va | 国产乱码久久久 | 麻豆专媒体一区二区 | 亚洲网中文字幕 | 2002亚洲精品真实在线 | 久久不见久久见免费影院 | 精品影视一区二区 | 欧美孕妇变态重口另类 | 国产网红黄色在线观看 | 国产色诱视频在线观看 | 中国一级淫片bbb | 伊人久久综在合线亚洲2019 | 乱人伦中文无码视频在线观看 | 亚洲一区二区三区四区的 | 亚洲国产精品久久 | 在线观看高清视频 | 四虎成人永久在线精品免费 | 国产日韩AV无码免费一区二区 | 麻豆91免费 | a级片免费看 | 熟妇人妻久久中文字幕 | 久久精品视频9 | 国产精品爽黄69天堂a | 亚洲欧美精品午睡沙发 | 美女视频性感网站黄色 | av资源在线免费观看 | youjizz中国版在线视频 | 一级片免费看 | 色婷婷av一区二区三区久久 | 欧美精品久久久久久久久大尺度 | 色综合.com| 绿色小导航ˇ福利合集 | 国产精品久久久久久久久久久久人四虎 | 欧美丰满熟妇BBB久久久 | 国产精品久久久久久久小唯西川 | 榴莲导航深夜福利 |