DJC*_*rth 50
在java和大多数OO语言中,仅仅为了保存常量来定义一个类被认为是不好的做法.在与它们相关联的类中定义常量要好得多.通常有一个.例如
interface MyComponent {
/** The default height for a component */
public static final int DEFAULT_HEIGHT = 5;
// other stuff
}
Run Code Online (Sandbox Code Playgroud)
如果真的没有人随意定义一个单独的类.
编辑:这里的关键是:
bil*_*dev 18
通常,您使用Constants类,或者在使用它们的类中定义它们,la:
class Constants {
public static final int NUM_TRIANGLES = 4;
public static final String SOME_TEXT = "This is a constant";
}
Run Code Online (Sandbox Code Playgroud)
然后你会通过以下方式来引用它们:
String inst = Constants.SOME_TEXT;
Run Code Online (Sandbox Code Playgroud)
最常见的方法是在需要时在类中创建" 常量 ":
class Example {
private static final int FILENAME = "test.txt;
}
Run Code Online (Sandbox Code Playgroud)
它也可以声明为default,protected或public,而不是private .虽然定义常量被认为是一种OO 反模式,但它是一个特殊的"常量"(上帝)类,它存储整个应用程序的常量.或者,您也可以将配置数据存储在Java属性文件中,这不被视为反模式.
另一种迅速普及的选择是使用依赖注入(DI)模式.此模式通常用于依赖对象,但它也可用于将常量值注入对象.例如,可以使用Google的轻量级Guice DI框架实现:
class Example {
String filename;
@Inject
public Example(@ConfigFilename String filename) {
this.filename = filename;
}
Run Code Online (Sandbox Code Playgroud)
在一个特殊的Binder类中,您将一个值绑定到使用@ConfigFilename注释的字符串.这样,您可以独立测试最小的耦合和类.
| 归档时间: |
|
| 查看次数: |
36871 次 |
| 最近记录: |