近日在公司領到一個小需求,需要對之前已有的試用用戶申請規則進行拓展。我們的場景大概如下所示:
按照上述的條件我們可以得出的結論是:
咱們的主要流程主要是基于 and 或者 or 的關系。
如果有一個不匹配的話,其實咱們后續的流程是不用執行的,就是需要具備一個短路的功能。
對于目前的現狀來說,我如果在原有的基礎上來改,只要稍微注意一下解決需求不是很大的問題,但是說后面可維護性非常差。
后面經過權衡過后,我還是決定將這個部分進行重構一下。
規則執行器
針對這個需求,我首先梳理了一下咱們規則執行器大概的設計, 然后我設計了一個 V1 版本和大家一起分享一下,如果大家也有這樣的case 可以給我分享留言,下面部分主要是設計和實現的流程和 code。
規則執行器的設計
對于規則的抽象并實現規則
執行器構建
執行器的調用
總結
規則執行器的優點和缺點
優點:
比較簡單,每個規則可以獨立,將規則,數據,執行器拆分出來,調用方比較規整;
我在 Rule 模板類中定義 convert 方法做參數的轉換這樣可以能夠,為特定 rule 需要的場景數據提供拓展。
缺點:
上下 rule 有數據依賴性,如果直接修改公共傳輸對象 dto這樣設計不是很合理,建議提前構建數據。
審核編輯:湯梓紅
-
執行器
+關注
關注
5文章
378瀏覽量
19426
原文標題:還在寫大量 if 來判斷?試試用一個規則執行器來替代它
文章出處:【微信號:玩轉單片機與嵌入式,微信公眾號:玩轉單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
溫室中無線執行器節點設計
基于LabVIEW的航天執行器測試解決方案
prisma氣動執行器資料
執行器由什么組成_執行器的工作原理
![<b class='flag-5'>執行器</b>由什么組成_<b class='flag-5'>執行器</b>的工作原理](https://file.elecfans.com/web1/M00/DB/85/o4YBAGAJK8SAIO8eAACbJjW_mIM212.jpg)
評論