gpt4 book ai didi

.net - dotnet 中的命名空间命名约定

转载 作者:行者123 更新时间:2023-12-02 12:53:01 26 4
gpt4 key购买 nike

我通常使用这个约定:

公司名称.应用程序名称.功能

例如

Acme.EmailService
Acme.EmailService.Dal
Acme.EmailService.BusinessLogic
Acme.EmailService.BusinessLogic.ErrorHandling

但在我目前工作的地方,他们使用:

公司名称.功能.应用程序名称

Acme.EmailService
Acme.Dal.EmailService
Acme.BusinessLogic.EmailService
Acme.BusinessLogic.EmailService.ErrorHandling

最后一个命名空间对我来说看起来有点奇怪。它是业务逻辑项目的子文件夹,因此默认情况下文件夹名称会附加到命名空间。

我看过很多命名约定标准,但似乎没有提到这个问题。

每种方法的优点和缺点是什么?

最佳答案

遵循 Microsoft 创建的命名准则:

为命名空间选择的名称应指示命名空间中的类型提供的功能。例如,System.Net.Sockets 命名空间包含使开发人员能够使用套接字通过网络进行通信的类型。

命名空间名称的一般格式如下:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

例如,Microsoft.WindowsMo​​bile.DirectX。

请在命名空间名称前加上公司名称前缀,以防止不同公司的命名空间具有相同的名称和前缀。

http://msdn.microsoft.com/en-us/library/vstudio/ms229026(v=vs.100).aspx

在这种情况下,我认为 BusinessLogic 或 Dal 只是层抽象,实际上不属于命名空间。因此我不会使用你们中的任何例子,只是

Acme.EmailService

这些额外的 namespace 只会让找到正确的接口(interface)/类变得更加困难。无论如何,您正在使用多个程序集,对吗?无论如何,您的不同层都会被分离(在程序集的帮助下)。

问问自己层命名空间到底给了你什么?每个命名空间中有多少个类? 10岁以下?它会让您的代码更难还是更容易使用?

关于.net - dotnet 中的命名空间命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com