【重構】使用 strategy pattern 來取代複雜的 switch cases 與 if/else statement
上回在客戶那邊跟著他們一起重構 legacy code 中一大陀的 if/else if 裡面複雜的邏輯。(不同層級、模組的 cache 中做不同的處理)
因為當時時間有限,大家技能水平普遍有點跟不上,所以雖然讓產品程式碼變得乾淨一點,但對學習重構來說,大家少的東西還是太多了。
因此答應了他們,會再弄個簡單一點的範例,包含重構的過程步驟,source code,以及重構的操作過程錄成影片,供他們台灣跟國外的 RD 可以學習跟練習。
--
這例子其實也是我幾年前 3 天 TDD 版本中,重構的 workshop 裡面擷取出來的一段核心,從 C# 換成了 Java,只是重構過程的行雲流水程度,已經今非昔比了。有興趣的朋友可以看一下,我是怎麼用 IDE 在重構的。
身為 JetBrains Taiwan 的 training partner,總是要有點功力才能撐得起這個資格啊。
--
※ 影片網址:https://www.youtube.com/watch?v=zO-NnNC-xyg&feature=youtu.be&ab_channel=JoeyChen
我不定時會錄一些技術相關的影片,有興趣就來按一下小鈴鐺訂閱吧。
※ GitHub commit history: https://github.com/tdd-best/strategy-sample/commits/video
※ 想要了解更完整的來龍去脈,想要讓自己能動手作到一樣的事,想要玩比這範例更進階、更實務的重構與 TDD,2021 年五月的梯次,只剩下 4 個名額啦:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
話說這個梯次我拍胸脯保證 100% 會額滿的,因為我正在翻譯相關的經典書,屆時會補上更多相關的內容。
#IntelliJ
#Refactoring
#StrategyPattern
同時也有11部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,文化JAVA物件導向程式設計2016_3(類別應用與運算子與重覆控制) 今天課程內容: 01_複習中文API設定與增加Scanner類別 02_版本控制與細節說明 03_改寫為JOptionPane的輸入方式 04_改寫為showMessageDialog與輸出可執行的JAR檔 05_如何解出JA...
java switch 範例 在 吳老師教學部落格 Youtube 的最讚貼文
文化JAVA物件導向程式設計2016_3(類別應用與運算子與重覆控制)
今天課程內容:
01_複習中文API設定與增加Scanner類別
02_版本控制與細節說明
03_改寫為JOptionPane的輸入方式
04_改寫為showMessageDialog與輸出可執行的JAR檔
05_如何解出JAR檔與反組譯CLASS
06_修改程式庫設定與跳脫字元練習
07_運算子與Switch範例
08_Switch車票範例與改寫為IF
09_Switch性別範例與改寫為IF
10_重覆控制for迴圈與奇數加總
11_For範例與巢狀結構
完整影音:
https://www.youtube.com/playlist?list=PLCfL1sBZ2_STmLOmuI7w2_j8BQXcama4a
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/java_object2016
懶人包:http://terry55wu.blogspot.com/p/android.html
主要以實例說明為主,比較具體。至於抽象理論書上都有詳細說明,
請大家配合範例研讀,應該會更好了解的。
課程理念:Android智慧型手機平台,已成為手機上最完整的開放開發平台
人手必備的趨勢下行動上網已達1000萬人次以上,手機相關應用,將會超越PC,比PC更智慧,更貼近個人使用習慣,未來APP將漸取代Web,成為各產
業或政府對外窗口。
如何開發APP,以循序漸進的方式講授Android應用程式架構、圖形介面開發、測試與除錯等,進而取得證照。
吳老師教學特色:
1.影音複習分享(全程錄影)。
2.能不硬code程式,有程式也會提供畫面。
3.提供業界實務開發經驗。
4.書上沒講到的操作,圖形化工具使用。
5.隨時更新第一手資訊。
6.可延伸證照考試解題(TQC+)。
7.提供雲端影音連結
8.提供部落格教學日誌
9.提供論壇登入問題討論
上課用書:
Java SE 7與Android 4.x程式設計範例教本
作者:陳會安
本學期課程目標:
1.把JAVA融入到Android
2.Android入門
3.Android範例詳解
1.把JAVA融入到Android
於是將拿自己最熟悉的JAVA證照題目,
用最好的開發環境 ECLIPSE開發JAVA變得很重要,
可惜目前要找到如何用 ECLIPSE開發 JAVA的書籍似乎闕如,
但要開發JAVA與Androdi就一定要學好ECLIPSE,
於是劇本流程:
1.ECLIPSE的環境建置。
2.新建JAVA專案,開始寫101題樂透彩模擬程式。
3.轉成視窗介面。
4.輸出程執行檔,可以在WINDOWS、MAC、LINUS等環境執行。
5.將專案改成APP。
上下來還蠻緊湊,因為也要繳交作業,學生開始變得更積極。
回家之後我就變成後製,又搖身一半為部落客,
寫文分享JAVA開發經驗。
Android 教學研習心得分享懶人包:
http://terry55wu.blogspot.com/p/android.html
吳老師
java下載 jdk eclipse java教學網站 java教學影片 "java eclipse教學" "eclipse 教學" java證照解答 AWT類別 電腦證照

java switch 範例 在 吳老師教學部落格 Youtube 的最讚貼文
文化JAVA物件導向程式設計2016_3(類別應用與運算子與重覆控制)
今天課程內容:
01_複習中文API設定與增加Scanner類別
02_版本控制與細節說明
03_改寫為JOptionPane的輸入方式
04_改寫為showMessageDialog與輸出可執行的JAR檔
05_如何解出JAR檔與反組譯CLASS
06_修改程式庫設定與跳脫字元練習
07_運算子與Switch範例
08_Switch車票範例與改寫為IF
09_Switch性別範例與改寫為IF
10_重覆控制for迴圈與奇數加總
11_For範例與巢狀結構
完整影音:
https://www.youtube.com/playlist?list=PLCfL1sBZ2_STmLOmuI7w2_j8BQXcama4a
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/java_object2016
懶人包:http://terry55wu.blogspot.com/p/android.html
主要以實例說明為主,比較具體。至於抽象理論書上都有詳細說明,
請大家配合範例研讀,應該會更好了解的。
課程理念:Android智慧型手機平台,已成為手機上最完整的開放開發平台
人手必備的趨勢下行動上網已達1000萬人次以上,手機相關應用,將會超越PC,比PC更智慧,更貼近個人使用習慣,未來APP將漸取代Web,成為各產
業或政府對外窗口。
如何開發APP,以循序漸進的方式講授Android應用程式架構、圖形介面開發、測試與除錯等,進而取得證照。
吳老師教學特色:
1.影音複習分享(全程錄影)。
2.能不硬code程式,有程式也會提供畫面。
3.提供業界實務開發經驗。
4.書上沒講到的操作,圖形化工具使用。
5.隨時更新第一手資訊。
6.可延伸證照考試解題(TQC+)。
7.提供雲端影音連結
8.提供部落格教學日誌
9.提供論壇登入問題討論
上課用書:
Java SE 7與Android 4.x程式設計範例教本
作者:陳會安
本學期課程目標:
1.把JAVA融入到Android
2.Android入門
3.Android範例詳解
1.把JAVA融入到Android
於是將拿自己最熟悉的JAVA證照題目,
用最好的開發環境 ECLIPSE開發JAVA變得很重要,
可惜目前要找到如何用 ECLIPSE開發 JAVA的書籍似乎闕如,
但要開發JAVA與Androdi就一定要學好ECLIPSE,
於是劇本流程:
1.ECLIPSE的環境建置。
2.新建JAVA專案,開始寫101題樂透彩模擬程式。
3.轉成視窗介面。
4.輸出程執行檔,可以在WINDOWS、MAC、LINUS等環境執行。
5.將專案改成APP。
上下來還蠻緊湊,因為也要繳交作業,學生開始變得更積極。
回家之後我就變成後製,又搖身一半為部落客,
寫文分享JAVA開發經驗。
Android 教學研習心得分享懶人包:
http://terry55wu.blogspot.com/p/android.html
吳老師
java下載 jdk eclipse java教學網站 java教學影片 "java eclipse教學" "eclipse 教學" java證照解答 AWT類別 電腦證照

java switch 範例 在 吳老師教學部落格 Youtube 的最佳解答
文化JAVA物件導向程式設計2016_3(類別應用與運算子與重覆控制)
今天課程內容:
01_複習中文API設定與增加Scanner類別
02_版本控制與細節說明
03_改寫為JOptionPane的輸入方式
04_改寫為showMessageDialog與輸出可執行的JAR檔
05_如何解出JAR檔與反組譯CLASS
06_修改程式庫設定與跳脫字元練習
07_運算子與Switch範例
08_Switch車票範例與改寫為IF
09_Switch性別範例與改寫為IF
10_重覆控制for迴圈與奇數加總
11_For範例與巢狀結構
完整影音:
https://www.youtube.com/playlist?list=PLCfL1sBZ2_STmLOmuI7w2_j8BQXcama4a
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/java_object2016
懶人包:http://terry55wu.blogspot.com/p/android.html
主要以實例說明為主,比較具體。至於抽象理論書上都有詳細說明,
請大家配合範例研讀,應該會更好了解的。
課程理念:Android智慧型手機平台,已成為手機上最完整的開放開發平台
人手必備的趨勢下行動上網已達1000萬人次以上,手機相關應用,將會超越PC,比PC更智慧,更貼近個人使用習慣,未來APP將漸取代Web,成為各產
業或政府對外窗口。
如何開發APP,以循序漸進的方式講授Android應用程式架構、圖形介面開發、測試與除錯等,進而取得證照。
吳老師教學特色:
1.影音複習分享(全程錄影)。
2.能不硬code程式,有程式也會提供畫面。
3.提供業界實務開發經驗。
4.書上沒講到的操作,圖形化工具使用。
5.隨時更新第一手資訊。
6.可延伸證照考試解題(TQC+)。
7.提供雲端影音連結
8.提供部落格教學日誌
9.提供論壇登入問題討論
上課用書:
Java SE 7與Android 4.x程式設計範例教本
作者:陳會安
本學期課程目標:
1.把JAVA融入到Android
2.Android入門
3.Android範例詳解
1.把JAVA融入到Android
於是將拿自己最熟悉的JAVA證照題目,
用最好的開發環境 ECLIPSE開發JAVA變得很重要,
可惜目前要找到如何用 ECLIPSE開發 JAVA的書籍似乎闕如,
但要開發JAVA與Androdi就一定要學好ECLIPSE,
於是劇本流程:
1.ECLIPSE的環境建置。
2.新建JAVA專案,開始寫101題樂透彩模擬程式。
3.轉成視窗介面。
4.輸出程執行檔,可以在WINDOWS、MAC、LINUS等環境執行。
5.將專案改成APP。
上下來還蠻緊湊,因為也要繳交作業,學生開始變得更積極。
回家之後我就變成後製,又搖身一半為部落客,
寫文分享JAVA開發經驗。
Android 教學研習心得分享懶人包:
http://terry55wu.blogspot.com/p/android.html
吳老師
java下載 jdk eclipse java教學網站 java教學影片 "java eclipse教學" "eclipse 教學" java證照解答 AWT類別 電腦證照
