決策表模式: 一種業務規則引擎實現方式
決策表是業務邏輯建模的表格形式,表示所有可能的條件組合。特別是在複雜的系統中,當多個業務規則共享同一組屬性時,可以使用決策表輕鬆對映所有場景。
決策表具有用於對映條件及其操作的列和行。因此,可以使用不同的條件和操作來構建每個業務規則,而不會丟失所有可能的組合。
為了進一步解釋所有組合,讓我們考慮一個根據學生的分數、年齡和州/地區確定獎學金百分比的場景。
這些是屬性集和每個屬性的可能值數量。
if score >= 80 and age >= 18 and states and territories is VIC then scholarship percentage is 80 |
我們可以使用上表中的相同屬性和可能值對場景上下文進行建模。
傳統手工方法
軟體開發人員使用程式語言將邏輯寫入應用程式是傳統方法。這可能會導致大型專案以及擴充套件專案中的多個問題。
傳統方法
- 需要特定程式語言的知識
- 它是程式碼庫的一部分,使得在不影響程式碼庫的情況下更難進行更改
- 難以理解複雜的場景
- 很難對映場景的所有組合並對其進行測試
- 領域專家和業務分析師無法根據業務規則的變化更新程式碼
- 很容易錯過所有可能的組合,因為它們是以句子的形式寫的
決策表
- 不需要程式語言
- 與應用程式程式碼庫分離,使得在不影響程式碼庫的情況下更容易進行更改
- 複雜的場景可以很容易地以表格的形式進行對映。
- 所有組合都可以以表格形式對映並一一測試
- 無需編碼,領域專家和業務分析師可以根據業務規則的變化更新程式碼
- 所有可能的組合都可以輕鬆建模,因為有表格形式的視覺化表示
決策表模式只能表達簡單業務規則嗎?
這個問題的答案是堅決不!儘管決策表的簡單性以及它們如何輕鬆地讓您對業務規則進行建模,但這並不意味著它僅適用於簡單的業務規則。
決策表允許對非常複雜的業務規則進行建模,同時它們看起來簡單且易於理解。決策表支援複雜的條件和規則輸入。這將允許在單元格中輸入不同型別的值,例如範圍、常量和文字值以及公式和表示式。
另一方面,您可以在條件列中組合複雜的布林運算子。此外,使用框式表示式構建和重用複雜表示式作為條件或操作列的一部分,將允許您將任何複雜邏輯簡單地放入任何決策表的結構化模型中。
在所有這些之上,決策表允許在設計時進行語義和結構驗證,這將使您能夠了解您是否擁有正確和完整的決策表。
當處理複雜資料時,即關係和資料集合作為條件列的一部分,一元運算子將允許您處理任何與資料相關的複雜邏輯。
相關文章
- 規則引擎模式 - upperdine模式
- Java中最流行的幾種業務規則引擎簡介Java
- 什麼是業務規則引擎?
- Java各種規則引擎Java
- uwegeercken/jare:Java業務規則引擎(Jare)JARJava
- Drools 業務規則引擎的完整教程
- 如何用Go快速實現規則引擎Go
- 實踐作業的一種實現方式
- TypeScript 中的決策表:一種被低估的簡潔程式碼模式TypeScript模式
- 單例模式:5種實現方式單例模式
- DDD中實現業務規則的驗證 - Marcin
- Spring Boot中實現規則引擎原始碼教程Spring Boot原始碼
- Java中動態規則的實現方式Java
- 幾種實現延時任務的方式(一)
- 設計模式學習(一)單例模式的幾種實現方式設計模式單例
- java幾種代理模式的實現方式Java模式
- 五種方式實現 Java 單例模式Java單例模式
- 在Java中用規則引擎模式替代ifelse - VitaliJava模式
- 如何學習Java的規則引擎模式? - plagovJava模式Go
- hyperjumptech/grule-rule-engine: Golang的規則引擎實現Golang
- AI人工智慧的業務模式不同於傳統軟體,實則是一種服務型企業模式 -Andreessen HorowitzAI人工智慧模式
- 第2-4-4章 規則引擎Drools規則屬性-業務規則管理系統-元件化-中臺元件化
- URule規則引擎
- 用規則引擎開發靈活配置的業務系統
- 開放封閉原則與規則引擎設計模式 - devgenius設計模式dev
- DDD 中的那些模式 — 使用 Specification 管理業務規則模式
- 規則引擎模式的.NET開源專案案例模式
- 單例模式的各種實現方式(Java)單例模式Java
- Drools規則引擎實踐直白總結
- cerner/clara-rules: Clojure的業務規則引擎與專家系統
- 潤乾報表中進度條的一種實現方式
- .NET RulesEngine(規則引擎)
- 基於Flink和規則引擎的實時風控解決方案
- Java設計模式——實現單例模式的七種方式[JZOF]Java設計模式單例
- 分散式事務的幾種實現方式分散式
- 服務限流,我有6種實現方式…
- Drools決策引擎——Docker部署Docker
- 第2-4-2章 規則引擎Drools入門案例-業務規則管理系統-元件化-中臺元件化