隨着只是問題的一個粗略的探索,我認爲這個問題歸結到是否是最佳的設計包括或默認排除數據。
假定值A,B和C的集合,也有用於結果的兩個可能的標準被接受:1.所有的值必須是有效的,或2.否值必須無效。
在第一種情況下,人們會用的前提下開始,默認的結果是假的,直到所有值進行了驗證,並在第二次,直到被證明是錯誤的一個無效值默認情況是真實的。
爲了說明,假設包含表單:
First Name: [ ] (required)
Last Name: [ ] (required)
Tel Number: [ ] (required)
Email Addr: [ ]
在可能的校驗可能是:
First Name must not be empty and must contain alpha chars only.
Last Name must not be empty and must contain alpha chars only.
Tel Number must not be empty, must contain numbers only, formatted as (xxx) xxx-xxxx.
Email Addr if not empty, must be formatted as [email protected], etc.
這種情況是包容性的,所有的驗證規則必須返回true的輸入是可以接受的。因此,默認值應該是錯誤的,直到證明是正確的。
現在考慮這部分的形式發送電子郵件:
Subject: [ ]
CC: [ ]
BCC: [ ]
Priority: [ ]
由於所有字段都是可選的,這是獨特的情況下它是有意義開始與假設數據是有效的,直到他們被一個不可接受的價值證明是無效的。
確切的反駁可以爲您的表單情況進行說明:假設真實,只要任何測試失敗返回false。這裏的另一個相關問題是,即使失敗,是否需要運行所有驗證。 – CPerkins 2011-05-18 16:51:03