我对使用命名空间的前所未有的、酷炫的和深奥的方式很感兴趣。我知道许多高级开发人员通过例如将它们用作对字符串常量的引用来“破解”名称空间。在字符串常量示例中,想法是实现 DRY(DRY = 不要重复自己),您可以将所有字符串保存在一个文件中。
注意:我正在寻找与“通用”语言相关的答案,例如 C#、Ruby、Java 等。
我对使用命名空间的前所未有的、酷炫的和深奥的方式很感兴趣。我知道许多高级开发人员通过例如将它们用作对字符串常量的引用来“破解”名称空间。在字符串常量示例中,想法是实现 DRY(DRY = 不要重复自己),您可以将所有字符串保存在一个文件中。
注意:我正在寻找与“通用”语言相关的答案,例如 C#、Ruby、Java 等。
我经常使用的一种深奥用法是在 C++ 中定义枚举时,尤其是当某个上下文中有多种类型时。这使得在相关上下文中的Quality::k_high
使用成为可能。Importance::k_high
枚举还经常包含未知值(通常表示未设置任何值的情况),需要限定这些值以消除常量(例如k_qualityNone
和k_importanceNone
)的歧义,而使用命名空间可以避免这种情况。
因此,定义将如下所示:
命名空间质量{ 枚举类型 { k_high, k_medium, k_low, k_none }; }
和
命名空间重要性{ 枚举类型 { k_high, k_medium, k_low, k_none }; }
然后,函数和方法将接受一个类型为Quality::Type
(and Importance::Type
) 的参数,这是相当具有描述性和美观的。单个枚举常量也有类似的限定,如前所述 ( Quality::k_low
)。