2014年5月20日 星期二

ASP.NET Web Form 對應優先設計 (Mapping-First Design) 第三彈 - 被遺忘者

PM 常說 先求有 再求好

PG 就說 no problem!

於是三兩下搞定了 CRUD 交給 USER

然後立馬被玩壞

因為 USER 總是能夠超越極限 在 TextBox 裡面塞入無限的可能性

顯而易見 我們需要類似這種東東 防止 USER 的無限加速器全開

或許反射性的就想到工具箱裡面的好碰友...

but that was out of fashion





既然前面兩彈 大費周章的 弄了一個 values mapping system

又在每彈結尾留可有可無的伏筆

自然就是要在上面搞些花招

已達更加無腦的境界





首先從 Map 發想

我希望這樣子來使用欄位驗證

這裡由於驗證可能是複數 所以使用 ICollection

然後陣列可以當作 ICollection 的實體





再來就是 中二到不行的 抽象類 Judgement





之所以不想命名成 validation 之類的 只是因為不想跟 其他欄位驗證的類別混淆

並非因為這個傢伙

或這個傢伙





審判的細節 靠子類實作

至於實作的細節 平常怎麼幹 就怎麼幹囉

隨便貼一個





觸發審判的方式也沒什麼特別

就在 Buster 裡面挖個方法 觸發的時機 高興怎樣就怎樣囉

這邊是在 Buster 放個 IsAllInnocent 屬性 取得該屬性時 會觸發驗證

該死的 Click 事件 獲得了 欄位驗證 並且避免了 重度脂肪肝

Great Success





標題梗 again

沒有留言:

張貼留言