如何避免“垂直分区”程序集中的命名空间和类名冲突?

时间:2010-07-02 20:20:57

标签: .net assemblies namespaces naming

通过“垂直分区”,我的意思是命名空间以模块而不是“层”命名

所以,

  • MyApp.Core
  • MyApp.Accounting
  • MyApp.OrderManagement
  • MyApp.HR

代替,

  • MyApp.UI
  • MyApp.Business
  • MyApp.Data

我遇到的唯一问题是,有时这些程序集可能具有与类型名称相同的命名空间的一部分。

假设我创建了一个与帐户相关的模块,并将其命名为MyApp.Account.dll,其基本命名空间为MyApp.Account。不可避免地,我需要创建一个名为Account的类。然后我必须使用命名空间或类型别名。

除了对名字非常有创意外,还有其他人以这种方式体验切割装配并处理名称冲突问题吗?

1 个答案:

答案 0 :(得分:9)

过去,我已经处理过这两种方式:

1)在适当的位置多个命名空间或使它们成为动名词(添加-ing后缀)。例如,MyApp.Orders可以安全地包含Order类。 (同样,坚持使用“MyApp.Accounting”而不是“MyApp.Account”)。

2)将Domain附加到命名空间(有点不满意,但有效)。