提问人:Ruben Hart 提问时间:12/31/2022 更新时间:12/31/2022 访问量:59
类型和命名空间相同时的类型和命名空间命名
Type and namespace naming when the type and namespace are the same
问:
.NET 设计指南建议避免对命名空间和类型使用相同的名称。
不要对命名空间和该命名空间中的类型使用相同的名称。
例如,不要用作命名空间名称,然后也 提供在同一命名空间中命名的类。多个编译器 要求此类类型完全合格。
Debug
Debug
鉴于上述情况,建议不要在命名空间中定义类型。在这种情况下,我可以看到两种可能的选项:Customer
Company.Entities.Customer
- 将命名空间复数化为,并在其中具有单数类型
Company.Entities.Customers
Customer
- 保留单数命名空间并保留在命名空间中
Company.Entities.Customer
Customer
Company.Entities
这两个选项似乎都是合理的,并且与在命名空间之外使用单个类型相比,选项 1 提供的所有相关类型的逻辑分组感觉很合理(对于具有类似命名问题的类型,可能会重复)。
鉴于这两种选择,是否有针对这种情况的标准方法或基于意见的方法(因此这个问题将结束)?
答:
2赞
Guru Stron
12/31/2022
#1
这两种方法都可以使用(如果从这两种方法中进行选择,我个人会选择第二种方法),但还有其他可能性值得考虑:
在命名空间名称中添加后缀,即 .
Entities
Company.Entities.CustomerEntities
从“按类型分组”方法(即实体/存储库/控制器/视图等的根级文件夹)切换到垂直切片架构(视频演示)/功能文件夹方法,我个人在过去几年中越来越喜欢这种方法(见这个,这个和这个)。
评论
0赞
Ruben Hart
12/31/2022
感谢您的回复。我喜欢垂直切片方法,这是我在开始新项目时采用的一种模式。这适用于现有项目,不幸的是,迁移体系结构目前不是一种选择。
0赞
Guru Stron
12/31/2022
@RubenHart,我会选择我建议的第一个选项(向命名空间添加后缀)。
1赞
Ruben Hart
12/31/2022
谢谢。我想我会坚持可怕的当前约定(他们有效地使用文件名来逻辑命名空间),然后在以后正确解决这个问题。
评论
Customer
Customer
Company.Entities
Customer
Customer