私は初心者の質問があります。 2つ以上のクラスによって共有されるいくつかのグローバル変数がある場合、どのクラスを別のファイルに持っていけば、どのクラスでもそれを読み込んで更新することができます。インターフェイスを使用せずにこれは可能ですか?グローバル変数用のJava独立ファイル
答えて
はい、interface
の変数はすべて暗黙的にstatic
です。したがって、これらの変数のそれぞれは、jvmにインスタンスが1つしかありません。
しかし、私の意見では、もっと良い方法は、おそらく彼らがsingletonクラスで宣言して使用されていることでしょう。
これを行う最も良い方法は、共有アプリケーションの状態をインターフェイスメソッドでアクセスできるようにし、次に変数を保持する実装クラスを持ち、構築中にこのクラスのインスタンスを他のクラスに渡すことです。インタフェースのインスタンス)。
これは、テストのために共有状態の機能を模擬し、一般的なコードの再利用性を向上させ、影響を与えずに共有状態の実装と構成を変更できるようにするため、そのコードを使用しています。
など。
// Session interface for all application shared state.
public interface ApplicationSession
{
public int getMaxUserLimit();
}
// A backing for the interface (simple in memory version, maybe future versions use a database, who knows).
public class SomeApplicationSession implements ApplicationSession
{
private volatile int maxUserLimit = 0;
public void setMaxUserLimit(int limit) { this.maxUserLimit = limit; }
public int getMaxUserLimit() { return maxUserLimit; }
}
// ClassA uses the supplied session.
public class MyClassA
{
private ApplicationSession session;
public myClassA(ApplicationSession session)
{
this.session = session;
}
}
// usage...
public class MyMain
{
public static void main(String[] args)
{
// Create/get session (ultimately possibly from a factory).
ApplicationSession session = new SomeApplicationSession();
ClassA myClassA = new ClassA(session);
// do stuff..
}
}
の可能複製あなたが私にこの部分を説明してくださいすることができますApplicationSessionセッション=は新しいですSomeApplicationSession(); – user1064089
@ user1064089これは、アプリケーションセッションのインスタンスをインスタンス化する単なる例です(そして、この1つのインスタンスは、構築時に他のクラス間で共有されます)。これを書かれているように便利にするには、インターフェイスで設定されたメソッドを宣言することもできます(または、セッション内の変数を変更する方法はありません)。 –
- 1. PowerPCアセンブリの位置依存、独立したコード、およびグローバル変数
- 2. javaパスの独立性
- 3. Object.watch()を「独立」変数に使用しますか?
- 4. Javaのスレッドセーフなグローバル変数
- 5. ファイル間のPHPグローバル変数
- 6. Javaシステムクロック独立したスケジューリング/ポーズ
- 7. MATLAB - 独立変数を持つ行列関数?
- 8. Rの2つの独立変数の共同累積分布
- 9. Pythonファイルの関数定義を独立にする
- 10. 独立クラスのクラス変数へのアクセスPython2.7.1
- 11. Scalaの複数の独立したimplicits
- 12. グローバル関数を独自のファイルに分割しますか?
- 13. 独立型実行可能ファイル生成
- 14. 独立ダブルピッカー
- 15. マルチスレッド独立タスク
- 16. R mboostの独立変数の相互作用を測定する
- 17. グローバル変数の使用
- 18. 遅れた独立変数を含む - R
- 19. アンドロイドアプリの独立したデータベースを使用
- 20. AngularJS(複数の独立アプリ)を使用したポータルタイプアプリケーション
- 21. ファイル間のPythonのグローバル変数
- 22. 独立したプライベートセッション
- 23. アンドロイドスタジオで独立した独立したgradleタスクを実行
- 24. ファイル全体のTypescriptグローバル変数
- 25. 変数グローバル変数?
- 26. codeigniter、グローバル変数を使用
- 27. 角度2つの独立したJavaScriptファイルとtypescriptですファイル
- 28. 独立したプラグインのサブモジュール
- 29. 数独GUIを使用してJava
- 30. 検索数独のJava
[Javaでグローバル変数](http://stackoverflow.com/questions/4646577/global-variables-in-java) –