代码之家  ›  专栏  ›  技术社区  ›  Jaguar

首选命名空间命名约定

  •  1
  • Jaguar  · 技术社区  · 14 年前

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

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

    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
    

    所以,有人和 明确的 结构,两个,甚至是其他我没试过的东西?我乐于接受建议,我正在寻找最佳的解决方案,因为目标是在开发期间从团队的维护和混乱中解放出来。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Dustin Davis    13 年前

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

    记住,你可以给using一个别名。