日常開發(fā)(一)???
?代碼冗余方案:::通過枚舉方法優(yōu)化代碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?案例
需求:
????????工作中昼接,經(jīng)常會前端傳遞一個(gè)int case 值毫目,后端通過這個(gè)case 判斷是否符合那個(gè)范圍,從而 執(zhí)行相應(yīng)的邏輯
(1)日常做法
通過上述寫法,如果范圍比較少粮呢,代碼還算美觀千康,易讀;但是隨著我們敏捷型項(xiàng)目迅速迭代的今天睹限,需求會變的越來越多譬猫,我后期投入修改此處代碼代價(jià)太大讯檐,移植性、侵入性較差染服,不推薦這么開發(fā)
(2)推薦做法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一别洪、TotalOperator.java 判斷區(qū)間范圍的枚舉方法類
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?二、test.java test測試
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?三柳刮、test測試結(jié)果
(3)總結(jié)
?項(xiàng)目源碼:https://github.com/fengjiening/easywork ? 記得star 一下喲
設(shè)計(jì)模式是為了更好的代碼重用性挖垛,可讀性,可靠性秉颗,可維護(hù)性痢毒,它有六大原則
1)單一職責(zé)原則(Single Responsibility Principle,簡稱SRP):該原則是針對類來說的蚕甥,即一個(gè)類應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé).
2)開放--封閉原則(The Open-Closed Principle簡稱OCP):是說軟件實(shí)體(類哪替、模塊、函數(shù)等等)應(yīng)該可以擴(kuò)展菇怀,但是不可以修改凭舶。
3)依賴倒轉(zhuǎn)原則(Dependence Inversion Principle?:針對接口編程,不要對實(shí)現(xiàn)編程
4)里氏代換原則(Liskov Substitution Principle爱沟,簡稱LSP):里氏代換原則帅霜,子類型必須能夠替換掉他們的父類型
5)迪米特法則(Law of Demeter):如果兩個(gè)類不必彼此直接通信,那么這兩個(gè)類就不應(yīng)當(dāng)發(fā)生直接的相互作用
6)合成/聚合復(fù)用原則(Composition/Aggregation Principle]呼伸,簡稱CARP):盡量使用合成/聚合身冀,盡量不使用類繼承。合成聚合是“has ?a”的關(guān)系蜂大,而繼承是“is ?a”的關(guān)系闽铐。??
????????這里只是舉了一個(gè)小例子,判斷某一個(gè)在是否在某個(gè)范圍內(nèi)奶浦,結(jié)果返回true/false,大家也可以更具實(shí)際的業(yè)務(wù)邏輯進(jìn)行 修改兄墅,如果喜歡的話,大家可以關(guān)注一下澳叉,???????????