2008-12-11 90 views
5

我已经看到了这两种方法用于在项目中使用的常量声明。在项目中声明常量

  1. 公共模块中的常量。

  2. 常量的不可继承(密封)类

有谁使用常量declartion任何其他的方法呢?

这些方法有什么区别,有没有什么优点和缺点?

谢谢。

回答

13

将常数放在最相关的类中 - 例如, Math.PiInt32.MinValue

我见过它实际上应该是枚举,太各种常数 - 尤其是对状态码等

我不认为这是明智的,创建一个类(或模块)只是常数,除非那些常数没有真正的类别。

3

我同意@Jon。但是,对于您的应用程序所独有的常量(即它们是配置默认值,调整参数等),我有时会创建一个强类型的静态配置类来保存它们。我只通过定义的公共getter来通过属性公开值。通过这种方式,它们可以从配置文件中加载,但在整个代码中作为固定值引用。

1

我的做法与Jon所说的相似。绝大多数的枚举和常量显然与特定的类或模块相关联,并在那里被公开。

我的软件的最低级别称为实用程序,包含数学例程和其他函数和一般实用程序的方法(而不是该应用程序模式的特定实用程序)。在这里有一个模块,它具有一些功能,只是没有共同主题的实用功能/子程序。在这个领域里,任何枚举或常量都会去。

应用程序模型有一个类似的区域,其中该应用程序一般使用的实用程序都是这样。并且那些不能与MODEL的任何一个类绑定的常量就是这样。

所以,有三种不同的地方常数可以在我个人的框架内找到区域

类声明 应用模型的总体效用模块 的应用组件的一般程序模块。

在实践中,只有少数几个枚举和常量需要在任一实用程序模块中声明。其中大部分是由Win32函数使用的Win32减速,这些减速被导入到我的程序集中。