Java シングルトン クラス
Java シングルトン クラス
このチュートリアルでは、例を使用して Java でシングルトン デザイン パターンを実装する方法を学習します。
Java では、Singleton は、クラスが 1 つのオブジェクトのみを持つことができるようにする設計パターンです。
シングルトン クラスを作成するには、クラスに次のプロパティを実装する必要があります:
private
を作成する クラス外でのオブジェクトの作成を制限するためのクラスのコンストラクター。private
を作成する 単一のオブジェクトを参照するクラス タイプの属性public static
を作成する 作成したオブジェクトを作成してアクセスできるようにするメソッド。メソッド内で、複数のオブジェクトの作成を制限する条件を作成します。
例:Java シングルトン クラスの構文
class SingletonExample {
// private field that refers to the object
private static SingletonExample singleObject;
private SingletonExample() {
// constructor of the SingletonExample class
}
public static SingletonExample getInstance() {
// write code that allows us to create only one object
// access the object as per our need
}
}
上記の例では、
private static SingletonExample singleObject
- クラスのオブジェクトへの参照private SingletonExample()
- クラス外でのオブジェクトの作成を制限するプライベート コンストラクター。public static SingletonExample getInstance()
- このメソッドは、クラスの唯一のオブジェクトへの参照を返します。メソッド static 以来 、クラス名を使用してアクセスできます。
Java でのシングルトンの使用
シングルトンは、データベースの操作中に使用できます。すべてのクライアントに同じ接続を再利用しながら、データベースにアクセスするための接続プールを作成するために使用できます。たとえば、
class Database {
private static Database dbObject;
private Database() {
}
public static Database getInstance() {
// create object if it's not already created
if(dbObject == null) {
dbObject = new Database();
}
// returns the singleton object
return dbObject;
}
public void getConnection() {
System.out.println("You are now connected to the database.");
}
}
class Main {
public static void main(String[] args) {
Database db1;
// refers to the only object of Database
db1= Database.getInstance();
db1.getConnection();
}
}
プログラムを実行すると、出力は次のようになります:
You are now connected to the database.
上記の例では、
- シングルトン クラス Database を作成しました .
- dbObject クラス型フィールドです。これはクラス Database のオブジェクトを参照します .
- プライベート コンストラクター
Database()
クラス外でのオブジェクトの作成を防ぎます。 - 静的クラス型メソッド
getInstance()
クラスのインスタンスを外部に返します。 - メインで クラス、クラス型変数 db1 があります .
getInstance()
を呼び出しています db1 を使用 データベースの唯一のオブジェクトを取得する . - メソッド
getConnection()
Database のオブジェクトを使用してのみアクセスできます . - データベース以来 オブジェクトを 1 つだけ持つことができ、すべてのクライアントが単一の接続を介してデータベースにアクセスできます。
Singleton は、Java 固有の機能ではなく設計パターンです。デザイン パターンは、世界中のプログラマーが共有するさまざまなコーディング手法を含むコード ライブラリのようなものです。
シングルトンが意味のあるシナリオ (ロギングなど) はごくわずかであることに注意することが重要です。シングルトンを使用するかどうかわからない場合は、シングルトンを完全に使用しないことをお勧めします。詳細:Singleton の何が悪いのか?
Java