抽象的
哪个名字比较好?
Domain.PersonService
DomainServices.PersonService
DomainServices.PersonDomainService
(考虑一些更长的名字,如PersonDomainServiceModelDecorator
)
或者是其他东西?
情况
我们有一个框架,其中每一层都有一些基类。前任。存储库、域服务、UI 等
每个逻辑层都有一个名称,用作其命名空间:
- 包含存储库的数据层的“数据”;前任。
Fx.Data.DbContextRepository
- 域(非 Web)服务层的“服务”;前任。
Fx.Services.CrudService
- Web UI 层的“Web.UI”;前任。
Fx.Web.UI.Controllers.CrudController
对于带有一些额外层的最终项目,我们也遵循相同的规则:
- “数据”例如。
Project.Data.PersonRepository
- “服务”例如。
Project.Services.PersonService
- “Web.UI” 例如。
Project.Web.UI.Controllers.PersonController
- 代码优先实体的“实体”;前任。
Entities.Person
- 对象模型的“模型”;前任。Models.Person.Criteria,
Models.Person.PersonDeleteModel
我的重点是“域服务”层,但也欢迎任何关于其他层的想法。
我们最终得出结论,“服务”不是“域服务”的合适名称,因为它可能会导致“Web 服务”或“域服务”层之间的歧义。
现在我们将“Services”命名空间更改为“Domain”或“DomainServices”。但我们还有另一个问题。我们为每个域服务类(例如PersonService
)添加了“服务”后缀。DomainServices.PersonDomainServer
现在有“DomainService”后缀(例如或DomainServices.DomainPersonService
)似乎很难看。
因此,使用“域”作为命名空间会更漂亮,而类名表明它们是域命名空间下的服务(例如Domain.PersonService
)。