2011-07-08 109 views
5

驗證規則和業務規則有什麼區別?驗證規則和業務規則有什麼區別?

根據我的理解,'如果業務對象/對象的狀態不符合預期,則拋出錯誤消息'是驗證規則,'當業務對象/對象的狀態是或不是等於某事,然後改變一些業務對象/對象的狀態[或者採取一些行動/事件,但不只是拋出一個錯誤]'是一個商業規則。

驗證可以是UI驗證 - 驗證UI字段或應用程序驗證的值 - 驗證業務對象狀態。

我不確定我的理解是否正確。在我的項目中,我們有一個驗證框架,其中一個簡單的驗證調用需要業務對象進行驗證,並收集所有錯誤。錯誤顯示在屏幕上。

除此之外,我們所描述的以上即查詢業務對象,在第二類屬於規則/對象的狀態並採取了一些措施,如改變另一個業務對象的狀態。我試圖找出實施這些規則的策略,使用一些框架[不是驗證框架]或規則引擎。

請您幫我理解上述2種規則的區別,如果有任何實施策略/建議,這將有所幫助。

回答

3

總之;驗證規則確定基本有效性; 「這是一個有效的電子郵件地址?」業務規則確定如何處理有效數據; 「我可以將用戶的確認電子郵件設置爲提交的值嗎?」業務規則可以遷移到驗證邏輯;但通常,驗證不是由業務規則引擎完成的。

1

驗證通常是指不需要查詢數據庫來驗證它們的規則。例如最小密碼長度。 業務規則通常需要數據庫查詢進行驗證。例如,您不能提取超過您賬戶餘額的金額。這是一個商業規則。 因此,例如,在應用程序中硬編碼的註冊學校的最低可接受年齡是驗證規則。

1

業務規則,從它的名字,它是從商業角度視圖數據校驗,例如婚姻狀況不能「嫁」與人的年齡小於15,它基本上是規則從變化企業與企業之間。

驗證,它通常與用戶界面有關,可以在商業上多於常見,並且可以通過常識派生出來,例如,電子郵件格式應該有特定的格式,或者如果有開始日期和結束日期,插入的結束日期應大於在開始日期插入的結束日期。

5

一個驗證是檢查所輸入的值是合法的其字段的上下文中(從技術的角度),例如:是5作爲用於年齡(VS -5)的數值上可接受?,而-5是例如,溫度可接受。

業務規則更多的是商業視角。這是一個檢查,通過驗證的值(通過驗證)是可接受的業務的政策和程序。例如。被允許註冊的人必須是居民,並且年滿18歲或以上..等等。業務規則可以檢查一個(或多個)字段值,並且可以諮詢存儲在數據庫中的數據和/或進行一些計算以確保該值通過業務規則。

因此,對於hanna上面發佈的示例,值15應該通過字段驗證(因爲它是Age的有效值),但它不會通過業務規則檢查,即已婚人士的年齡必須> 15。