- 重學Java設計模式
- 付政委(小付哥)
- 486字
- 2021-05-19 18:10:00
6.4 違背設計模式實現
沒有if…else解決不了的邏輯,不行就再加一行!
這里先使用不加設計的方式實現功能,之后再通過設計模式優化完善。一般使用這種實現方式的代碼都會集中在一個類中,里面包含大量的if…else邏輯。既不具有復雜的代碼結構,也不具有良好的擴展性。如果應對非常簡單的業務,還是可以使用的。
6.4.1 工程結構

對于裝修包的類DecorationPackageController,按照一個類里有多個if…else代碼的方式實現。
6.4.2 if…else實現需求



首先,這段代碼要解決的問題是接收入參:房屋面積(area)、裝修等級(level),根據不同類型的裝修等級選擇不同的材料。其次,在實現過程中可以看到每一段if代碼塊中包含著不同的材料(吊頂為二級頂;涂料為立邦;地磚為馬可波羅),最終生成裝修清單和裝修價格。最后,提供獲取裝修詳細信息的方法,返回給調用方,便于客戶了解裝修清單。
6.4.3 測試驗證
接下來,通過JUnit單元測試的方式驗證接口服務。
1.單元測試

2.測試結果


看到輸出的結果,已經有裝修公司提供的報價單的感覺了。雖然以上這段使用if…else方式實現的代碼可以滿足些許功能,但隨著公司業務的快速發展,會針對不同的戶型提供更多的套餐。這段實現代碼將迅速擴增到幾千行,甚至不斷地修改,最終難以維護。
推薦閱讀
- 微服務設計(第2版)
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- Moodle Administration Essentials
- Building a Home Security System with Raspberry Pi
- Natural Language Processing with Java and LingPipe Cookbook
- 21天學通C++(第5版)
- JavaScript機器人編程指南
- 區塊鏈架構之美:從比特幣、以太坊、超級賬本看區塊鏈架構設計
- Arduino電子設計實戰指南:零基礎篇
- Java高并發編程詳解:深入理解并發核心庫
- Java EE 7 Development with WildFly
- Python趣味創意編程
- 開源網絡地圖可視化:基于Leaflet的在線地圖開發
- C++游戲設計案例教程
- Android Application Programming with OpenCV 3