我最近重构了一个中等大小的应用程序,其中一项工作是将常用的代码拆分到不同的项目中。
现在,假设常用的名称空间结构是
Core.Interfaces
-主要应用程序
接口为
IFoo
对于每个专门的/外部的/引用的程序集,我决定对其进行扩展,比如
Core.Interfaces.Html
接口为
IBar
主应用程序
Core
程序集位于名为的项目中
核心
默认命名空间为
核心
而对于
Html
我做了一个名为
HtmlCore
默认命名空间为
核心
.
结果影响(以及我选择此特定方法的原因)是,一旦您引用了
HTML
组装
using
语句不必更新,净效果为
Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;
或使用
核心接口
以上内容转化为
IFoo fooIf;
Html.IBar barIf;
这个
隐性的
名称空间结构是依赖关系的直接结果,它确实为我们提供了很好的服务,它使项目名称空间的维护变得容易得多,而人们唯一需要做的就是引用程序集。该结构类似于Microsoft在.NET框架上已经执行的操作。
问题是我有了第二个想法,并且(对于未来的项目)我正在考虑一个对每个程序集都显式的名称空间结构,比如:
Core.DataInterfaces
Html.Core.DataInterfaces
所以,有人和
明确的
结构,两个,甚至是其他我没试过的东西?我乐于接受建议,我正在寻找最佳的解决方案,因为目标是在开发期间从团队的维护和混乱中解放出来。