官术网_书友最值得收藏!

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方式實現的代碼可以滿足些許功能,但隨著公司業務的快速發展,會針對不同的戶型提供更多的套餐。這段實現代碼將迅速擴增到幾千行,甚至不斷地修改,最終難以維護。

主站蜘蛛池模板: 岳阳市| 江西省| 衡水市| 霍邱县| 红河县| 博客| 海林市| 兴安县| 汉源县| 凉城县| 临沭县| 宜昌市| 长治市| 营口市| 连江县| 阿合奇县| 邯郸县| 台北市| 和田市| 蒙山县| 定西市| 武义县| 新巴尔虎右旗| 井研县| 蕲春县| 安远县| 东乌珠穆沁旗| 怀柔区| 紫金县| 修水县| 曲松县| 诏安县| 象州县| 福清市| 平乡县| 池州市| 东乌珠穆沁旗| 嵊泗县| 连州市| 盖州市| 德化县|