二. 基於C#3.0新特性的嘗試
為了消除if,考慮把那些驗證規則用一條線鏈起來,於是:
編寫實體類的驗證擴展方法如下:
那麼實體的Check()方法相應改為:
這樣,我們通過擴展方法,消除了if,但是我們把驗證規則鏈了起來,並已異常的方式來拋出實體非法信息,那麼每次驗證只能得到一條驗證信息,這顯然往往不符合實際情況。想想..
三. 繼續演進
接上,為了得到驗證錯誤信息集合,改進:
為了讓代碼看起來更像那麼回事,給實體加個基類吧,就叫EntityBase了。
然後編寫一個驗證類: