我正在制作一个使用几个常量的程序。起初,每当我需要使用一个常量时,我会将它定义为单身人士和常量
//C#
private static readonly int MyConstant = xxx;
//Java
private static final int MyConstant = xxx;
在我需要它的类中。过了一段时间,我开始意识到一个班级需要一些常数。
在这个时候,我有3点,选项:
- 要在需要它的不同的类中定义它们。这导致重复。如果由于某种原因后来需要更换其中一个,我必须检查所有课程,以便在任何地方替换它们。
- 定义一个静态类/单例,所有常量都是公共的。
- 如果我在ClassA,ClassB和ClassC中需要一个常量X,我可以在ClassA中将它定义为public,然后让ClassB和ClassC引用它们。这个解决方案对我来说不太好,因为它们之间已经有了更多的依赖关系。
我最终用第二个选项实现了我的代码。 这是最好的选择吗?我觉得我可能错过了其他更好的选择。
我担心在这里使用单身人士的原因是,这个班级的用户对这个班级使用单身人士并不清楚。也许我可以创建一个ConstantsClass,它包含所有需要的常量,然后将它传递给构造函数中需要它的类?
感谢
编辑:我使用这个多为复杂的类型,而不是整数和字符串。至少在C#的情况下有所作为,因为这意味着我不能使用const
关键字。
如果是单身人士,他们当然不会被宣布为静态的。如果在静态类中,或者将它们放入每个需要它的类中,它们只会被声明为静态。 – 2010-05-02 22:03:49
那么这些值实际上不再是**常量**了。不,忘记单身主意。 – BalusC 2010-05-02 22:05:24