我最近重构了一个中等大小的应用程序,其中一个工作就是将常用的代码拆分到不同的项目中。
现在,让我们说常用的命名空间结构是
Core.Interfaces
- 主要应用程序
界面为IFoo
并且对于每个专门/外部/引用的程序集,我决定对其进行扩展,例如
Core.Interfaces.Html
界面为IBar
主应用程序的Core
程序集位于名为Core
的项目中,默认名称空间为Core
,而对于Html
程序集,我创建了一个名为{{1的项目默认命名空间为HtmlCore
。
结果效果(以及我选择此特定方法的原因)是,一旦引用Core
程序集,Html
语句就不必更新,净效果为
using
或使用Core.Interfaces.IFoo fooIf;
Core.Interfaces.Html.IBar barIf;
的using语句转换为
Core.Interfaces
这个隐式命名空间结构是依赖关系的直接结果,它确实很好地帮助了我们,因为它使项目命名空间维护变得更加容易,而且人们必须拥有的唯一东西就是对程序集的引用。该结构类似于微软已经在.net框架上所做的。
问题是我有第二个想法和(对于未来的项目)我正在考虑一个明确的每个程序集的命名空间结构,如:
IFoo fooIf;
Html.IBar barIf;
那么,有没有人使用过显式结构,甚至还有其他一些我没试过的东西?我愿意接受建议,我正在寻找最佳解决方案,因为目标是在开发过程中节省团队维护和混乱的时间。
答案 0 :(得分:1)
组织您的命名空间,但是您认为适合您的项目。命名空间用于逻辑分离以避免命名冲突,但显然非常适合组织代码。
请记住,您始终可以使用别名。