是否使用命名空间和文件夹来组织代码过度杀伤?
示例:
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::
名称空间中。)
答案 0 :(得分:2)
命名空间组织逻辑接口,目录为“物理”文件。
单个命名空间中的代码越多,它就越重要,它相对稳定且协调良好;如果标识符易变且不协调,则可能会在合并更改时看到冲突。根据您对此类冲突的体验或感受,您可以选择命名空间。
std::
是一个非常稳定且协调良好的命名空间的明显例子,这意味着很多东西都可以成功地捆绑到它中。如果你正在开发一个单人项目 - 从库到应用程序 - 你也更有可能应对更少的命名空间。
另一方面,如果您有多个全球团队独立工作 - 不断更改/添加标识符 - 那么将代码分隔成名称空间是很好的。此外,如果您有定期的经验,在一个系统中使用的明显和理想的标识符已经在另一个系统中使用 - 这也建议使用名称空间。