使用命名空间和文件夹来组织代码过度杀伤?

时间:2013-04-23 03:13:43

标签: c++ namespaces

是否使用命名空间和文件夹来组织代码过度杀伤?

示例:

Folder Structure:
Engine (Root)
--Audio
--Exceptions
--Game
--GFX
--Input
--Math
--Messages
--Physics
--Time
--[global headers]

所有类都包含在[root]::命名空间中,以防止与std::和第三方代码发生冲突。 Math文件夹包含[root]::Math::命名空间中包含的一些帮助(免费)函数的标头,而Audio在[root]::AudioHandler::命名空间中有一些辅助(免费)函数。

我应该将每个文件夹中的类放入类似描述的命名空间中吗? (即Physics文件夹中的类也将位于[root]::Physics::名称空间中。)

1 个答案:

答案 0 :(得分:2)

命名空间组织逻辑接口,目录为“物理”文件。

单个命名空间中的代码越多,它就越重要,它相对稳定且协调良好;如果标识符易变且不协调,则可能会在合并更改时看到冲突。根据您对此类冲突的体验或感受,您可以选择命名空间。

std::是一个非常稳定且协调良好的命名空间的明显例子,这意味着很多东西都可以成功地捆绑到它中。如果你正在开发一个单人项目 - 从库到应用程序 - 你也更有可能应对更少的命名空间。

另一方面,如果您有多个全球团队独立工作 - 不断更改/添加标识符 - 那么将代码分隔成名称空间是很好的。此外,如果您有定期的经验,在一个系统中使用的明显和理想的标识符已经在另一个系统中使用 - 这也建议使用名称空间。

相关问题