我对使用命名空间的前所未有,酷炫和深奥的方式感兴趣。我知道许多高级开发人员“破解”命名空间,例如,使用它们作为字符串常量的引用。在字符串常量示例中,想法是实现DRY(DRY =不要重复自己),并且可以将所有字符串保存在一个文件中。
注意:我正在寻找与“常见”语言相关的答案,如C#,Ruby,Java等。
答案 0 :(得分:1)
我经常使用的一个深奥用法是在C ++中定义枚举时,尤其是当cetain上下文中有多个类型时。这样可以在相关上下文中使用Quality::k_high
和Importance::k_high
。枚举也经常使用未知值(通常表示没有设置的情况),这些值需要有资格消除常量歧义(例如k_qualityNone
和k_importanceNone
),这可以避免使用名称空间。
因此定义如下:
namespace Quality { enum Type { k_high, k_medium, k_low, k_none }; }
和
namespace Importance { enum Type { k_high, k_medium, k_low, k_none }; }
然后函数和方法将采用Quality::Type
(和Importance::Type
)类型的参数,这是一个相当描述性和好的参数。单个枚举常量也与前面提到的类似(Quality::k_low
)。