如何組織擴展方法?說,如果我有對象類和字符串類擴展我很想分開這些擴展方法爲階級IE:組織擴展方法
public class ObjectExtensions
{
...
}
public class StringExtensions
{
...
}
我我使這個太複雜或者這是否有道理?
如何組織擴展方法?說,如果我有對象類和字符串類擴展我很想分開這些擴展方法爲階級IE:組織擴展方法
public class ObjectExtensions
{
...
}
public class StringExtensions
{
...
}
我我使這個太複雜或者這是否有道理?
我使用名稱空間和類名的組合來組織擴展方法,它與您在問題中描述的方式類似。
通常我在我的解決方案中提供了大部分共享功能(如擴展方法)中的某種「主程序集」。爲討論起見,我們將這個程序集稱爲「框架」。
在框架程序集中,我嘗試模擬具有擴展方法的事物的名稱空間。例如,如果我擴展System.Web.HttpApplication,我會有一個「Framework.Web」命名空間。 「系統」命名空間中的「字符串」和「對象」類轉換爲該程序集中的根「框架」命名空間。
最後,命名符合您在問題中指定的行 - 以「Extensions」作爲後綴的類型名稱。這就產生了一個類層次結構是這樣的:
的好處是,從維護的角度看,它真的很容易後來去找到一個給定類型的擴展方法。
有兩種方法,我組織,我使用擴展方法,
1)若擴展名是具體的項目我的工作,然後我把它在同一個項目/組件,但在它自己的命名空間。
2)如果擴展是一種我可能或正在其他項目中使用它的擴展,那麼我將它們在一個普通的擴展組件中分開。
要記住的最重要的是,我將在什麼範圍內使用它們?如果我只是牢記這一點,組織它們並不難。
哇,在創建我的第一個擴展類之前,我遇到了這個問題。 – Sung 2009-03-12 15:21:54