[英]Properly assigning Namespaces (with ReSharper's suggestions)
假設我們在主命名空間為MyNamespace
的項目中有以下文件和 [文件夾] 結構:
根據 ReSharper 的建議, Article
和Category
類的命名空間應該是MyNamespace.Entities , IReviewable
和ISearchable
的命名空間應該是MyNamespace.Interfaces , Enumerations
class 的命名空間應該只是MyNamespace 。
這是因為 ReSharper 的建議基於文件夾結構,而其建議基於文件在結構中的位置。
您如何看待上述名稱空間? 您認為僅在文件夾位置為類(接口等)實現命名空間是否正確?
還是您認為名稱空間聲明不應該僅取決於文件夾結構?
就我個人而言,我會將上述所有文件都放在一個MyNamespace下,因為它們都相互關聯。
我認為 ReSharper 的建議很好。 我認為根據它們是什么而不是它們所做的來對類等進行分組是錯誤的。
一個類比是將文檔分組到子文件夾 Word、Excel 等中,而不是按項目或某些其他功能分組。
請注意,ReSharper 會向項目中的每個文件夾添加一個“命名空間提供程序”屬性。 對於要用於組織但不參與命名空間的文件夾,您可以將該屬性設置為 false。
在有意義的文件夾中組織文件並從該結構構建命名空間是一種很好的做法。 Java 多年來一直遵循該規則,並且效果很好。
另請注意,當您有很多如上所述的子名稱空間時,是時候考慮按照 Patrick 的建議進行級別化(好吧,您認識他嗎?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.