2008-12-01 48 views
1

我已經開始在我們的開發框架中使用方面進行參數驗證。它很好地工作,我不喜歡用驗證代碼亂丟公共方法的前半部分。命名空間組織 - AOP驗證程序

我想知道的是,如果任何人有任何建議與命名空間結構中的位置,你會放置參數驗證?我的一部分人認爲,由於它是頂級功能,它應該位於頂級產品命名空間中 - 就像在.NET Framework中使用System的方式一樣。我只是擔心核心程序集會有更多像這樣的功能,因爲它會更進一步。

因爲它現在代表,我有他們喜歡的東西。

[公司] [產品] .ParameterValidators

在這個例子中,ParameterValidators是類(方面)的,其包含名稱功能。

除此之外,如果任何人有進一步的建議將方面合併到與結構佈局相關的現有代碼庫中,我將不勝感激。

回答

1

現在您正在考慮使用技術標準進行分區,即「將所有驗證程序放在名稱空間中,因爲它們是驗證程序」。這沒有考慮到驗證者存在的原因。

我的建議是按功能來劃分:

  1. 萬能驗證(如無效和範圍檢查)去一個通用的命名空間。

  2. 更具體的驗證器(如CustomerValidators)進入更具體的名稱空間。

總的想法是,你沒有1類,包含所有可能的驗證,你有幾個類(在不同的命名空間),每個聲明驗證因特殊原因

+0

瞭解了,我應該更清楚了。這些是頂級驗證器,如「ArgumentInRange」或「ArgumentNotNull」。專業化可能會導致更多具體的問題。 – 2008-12-01 19:41:15