命名图层之间的冲突

时间:2009-12-09 21:12:08

标签: architecture name-clash

所以我正在开发一个非常酷(非常大)的n层应用程序。

基本上我有以下程序集:


Domain.Contracts

服务
Services.Contracts

Presentation.Admin
Presentation.Web
Presentation.Core(在Admin和Web之间共享)
我可以实现Presentation.Core.Contracts

我正在努力解决的主要问题是不同层之间的名称冲突。

Services.Contracts.AccountServicesRequest
Domain.Contracts.AccountServicesRequest

我遇到了与服务名称相同的问题(在这种情况下,我只使用类作为服务而不是WCF等)。即:

Services.Contracts.IAccountService
Domain.Contracts.IAccountService

我现在通过在域层IxxxServiceHandler中创建所有“服务处理程序”来解决这个问题,它给了我这个:

Services.Contracts.IAccountService
Domain.Contracts.IAccountServiceHandler

但是,我无法使用在图层之间来回传递的对象来解决此问题。 这似乎通过我的解决方案在一堆地方撒了。 我很想知道是否有人遇到过同样的问题。如果是这样,你是如何解决它们的?

1 个答案:

答案 0 :(得分:0)

是的,我遇到过这个问题,但我每次都很快修好了。

良好的类命名约定可以提供帮助。避免在多个层的类中使用相同的名称。

或者,您可以使用namespace aliases,以便您可以使用,例如:

services::IAccountService
domain::IAccountService

这有帮助吗?