0

私はJavaでクライアントサーバーアプリケーションを構築しています(netbeansを使用).クライアント側にはConnection、サーバーとの間でデータの送受信を処理する3つのクラスと1つのクラスがあります..3つのクラスは同じ接続クラスを使用しています、データを送受信する必要があるたびに異なるクラスで使用される 1 つのグローバル接続を作成すると便利だと思いました。

したがって、C#とc ++から静的クラスを宣言できることはわかっていますが、Javaでは静的クラスについて宣言することは不可能です..何かアイデアはありますか?

4

3 に答える 3

1

グローバルな状態を導入することはしばしば悪い習慣と見なされますが、確かにユースケースがあります。したがって、シングルトン パターンについて考える必要があるかもしれません。シングルトンに関するウィキペディア

Java では、単純な実装は次のようになります (テストされていないコード)。

 public class MyConnectionClass {
   private static final MyConnectionClass SINGLE_INSTANCE = new MyConnectionClass();

   private MyConnectionClass() {}

   public static MyConnectionClass getInstance() {
      return SINGLE_INSTANCE;
   }
 }

その後、必要なときにいつでもシングルトン インスタンスを取得できます。

MyConnectionClass.getInstance()

クラスにはプライベートコンストラクタがあることに注意してください。これにより、使用できないことが確認されます

MyConnectionClass not_singleton_anymore = new MyConnectionClass()

列挙型を使用することもできます。これは、Java でシングルトンを実装するための最良の方法と考えられています。ウィキペディアからコピーされた例:

public enum Singleton {
        INSTANCE;
        public void execute (String arg) {
                //... perform operation here ...
        }
}

それが役立つことを願っています。

于 2013-04-25T21:47:25.923 に答える