Javaでの実装例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/11 16:01 UTC 版)
「Singleton パターン」の記事における「Javaでの実装例」の解説
以下にSingleton パターンを用いたクラスのJavaによる例を示す。 final class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }} このクラスにおいて、コンストラクタはprivateで定義されているため、他のクラスによって、Singletonクラスのインスタンスを生成することはできない。このクラスのインスタンスを生成したいときは、getInstance()メソッドを利用することになるが、このメソッドは最初に呼び出されたときにだけインスタンスを生成し、2回目以降に呼び出されたときは最初に生成したインスタンスを返すように作られている。そのため、プログラム中にSingletonクラスのインスタンスが1つしか存在しないことが保証される。 getInstance()メソッドがsynchronizedに指定されているのは、複数のスレッドからほぼ同時に呼び出された際に複数のインスタンスが生成されてしまう危険性をなくすためである。
※この「Javaでの実装例」の解説は、「Singleton パターン」の解説の一部です。
「Javaでの実装例」を含む「Singleton パターン」の記事については、「Singleton パターン」の概要を参照ください。
- Javaでの実装例のページへのリンク