2011-03-10 62 views
0

我必須設計一個數據驗證框架,它基本上在這些組件中分解了。在上下文中抽象數據來處理未來的對象類型(策略設計模式)?

  1. 數據訪問器 - 什麼是處理這個

  2. 對象建設者的最佳方式 - 我應該如何爲未來的 對象結構

  3. 校驗(策略模式)

  4. 準備

我必須對數據應用一些規則,但我不知道將來數據集會是什麼樣子。

因此,我很多想法後,是否應該知道規則應該知道如何對象看起來像或沒有規則和數據依賴(我有一種感覺,是的,但是不知道怎麼樣)。我發現很難爲數據集設計抽象。

任何線索,我應該怎麼想?

語言 - C#(.NET)
平臺 - 視窗

編輯:確切的問題

在戰略措施格局,是有可能,上下文可以容納通用對象和策略能夠應對與,不知道對象是如何構造的?

+0

關於你的國旗,我敢肯定這對未來某個人可能有用。 – 2011-07-26 02:21:27

回答

0

如果您定義抽象/基類,並在必要時調用抽象ValidateRules()方法,則可以在每個繼承自abstract/base類的類中實現ValidateRules()。

將該方法聲明爲基類中的抽象方法會強制其在任何派生類中的實現。

2

在驗證框架,你通常有一組不 「亂用」 的規則知道對象/實體的外觀。例如,你可能有一個NotNullRule檢查給定的屬性不是null:

//code is not REAL code! 

var user = new User({username=null, email="[email protected]"); 
var notNullrule = new NotNullRule(typeof(User).GetProperty("username"), user); 
var errors = notNullrule.Check(); 
Debug.Assert(errors[0] == "Property Username cannot be null"); 

這是常見的使用屬性設置對一類的哪些屬性使用的驗證策略。請參閱this example here

驗證框架通常也允許您創建自定義規則,這可能是特定於域的。例如:

public class CustomerIsEligibleForDiscount : Rule 
{ 
    public void Check(){ ... } 
} 

希望這會有所幫助。