1

我最近重构了一个中型应用程序,其中一项工作是将常用代码拆分到不同的项目中。

现在,假设常用的命名空间结构是

Core.Interfaces- 对于具有接口的主应用程序IFoo

对于每个专门/外部/引用的程序集,我决定对其进行扩展,例如

Core.Interfaces.Html 有一个接口IBar

主应用程序的Core程序集位于一个名为Core默认命名空间的项目中,Core而对于Html程序集,我创建了HtmlCore一个默认命名空间为Core.

结果效果(以及我选择这种特定方法的原因)是,一旦您引用了Html程序集,using就不必更新语句,净效果是

Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;

或使用上面的 using 语句Core.Interfaces转换为

IFoo fooIf;
Html.IBar barIf;

这种隐式命名空间结构是依赖关系的直接结果,它确实为我们提供了很好的服务,因为它使项目命名空间维护变得更加容易,并且唯一需要的就是对程序集的引用。该结构类似于微软已经在 .net 框架上所做的。

问题是我有第二个想法,并且(对于未来的项目)我正在考虑一个对每个程序集都明确的命名空间结构,例如:

Core.DataInterfaces
Html.Core.DataInterfaces

那么,有没有人使用过显式结构,甚至是我没有尝试过的其他东西?我愿意接受建议,我正在寻找最佳解决方案,因为目标是在开发过程中从维护和团队混乱中腾出时间。

4

1 回答 1

1

以您认为适合您项目的方式组织您的命名空间。命名空间用于逻辑分离以避免命名冲突,但显然非常适合组织代码。

记住,你总是可以给 usings 一个别名。

于 2011-02-01T18:06:05.220 回答