私はAndroidアプリケーションを開発しており、JavaとAndroidは非常に新しいです。
いくつかのアクティビティで使用する定数を作成したいと思います。これらの定数はどこで定義できますか?
ありがとう。
Javaでは悪い習慣と考えられており、ほとんどのOO言語では、定数を保持するためにクラスを定義するだけです。定数が関連付けられているクラスで定数を定義する方がはるかに優れています。通常は定数があります。例えば.
interface MyComponent {
/** The default height for a component */
public static final int DEFAULT_HEIGHT = 5;
// other stuff
}
実際に別のクラスを定義するのが自由ではない場合。
編集:ここで重要なことは次のとおりです:
通常、定数クラスを使用するか、定数クラスが使用されるクラスで定義します。
class Constants {
public static final int NUM_TRIANGLES = 4;
public static final String SOME_TEXT = "This is a constant";
}
次に、次の方法でそれらを参照します。
String inst = Constants.SOME_TEXT;
最も一般的な方法は、必要な場合にクラスに「 定数 」を作成することです。
class Example {
private static final int FILENAME = "test.txt;
}
プライベートの代わりに default 、protectedまたはpublicと宣言することもできます。 OO anti pattern と見なされますが、定数を定義することは、全体の定数を格納する特別な「定数」( God )クラスですまたは、設定データを Javaプロパティファイル に保存することもできますが、これはアンチパターンとは見なされません。
急速に普及している別のオプションは、 Dependency Inject (DI)パターンの使用です。多くの場合、このパターンは依存オブジェクトに使用されますが、定数値をオブジェクトに注入するためにも使用できます。これは、たとえば、Googleの軽量 Guice DIフレームワークで実装できます。
class Example {
String filename;
@Inject
public Example(@ConfigFilename String filename) {
this.filename = filename;
}
特別な Binder クラスでは、@ ConfigFilenameで注釈された文字列に値をバインドします。このようにして、独立してテストできる最小限のカップリングとクラスがあります。