前言
前面將活動抽象成了規則檢驗和一系列的操作,不同的活動的規則有重疊也有不同,如何設計才能保證最好的擴展性。
規則引擎的出現就是制定一套規則檢驗的模型,下面來看下具體的設計。
核心UML圖
組件介紹
主要分爲以下三個關鍵模塊
- 規則實體
存儲規則屬性 - 規則檢驗器
執行規則檢驗,檢驗不通過可以自定義文案,該文案可以展示給用戶看 - 執行引擎
串聯業務請求和規則檢驗
使用場景
-
活動參與條件判斷
活動規則這裏採用的是單規則檢驗失敗跳出方式,只有一個規則檢驗不通過,就結束了。 -
紅包使用規則判斷
紅包等一系列優惠載體對於使用也會有一系列的規則檢驗,同活動不同,所有不可用的原因都需要展示出來。
通過這個規則引擎其實也是支持的
接入規範
- 規則在DB層的存儲儘量按照相同的結構,可以採用列擴展的方式,自己定義一個規則解析器讀取對應的值,組裝成規則集合
- 跟前端約定格式之後,例如採用[{“code”:“StartTime”,“value”:“123445”}]這種JSON串格式,就可以很方便支持規則的擴展,活動管理存儲規則相關的代碼服務端基本上就保持不變
- 新增規則增加對應RULE實體和Checker的邏輯即可