Java8にシングルトン(Singleton)パターンクラスを利用する
環境
Windows 10 64bit
Eclipse 2019
Java8
説明
「Singleton(シングルトン)」はデザインパターンの一種です。「Singleton(シングルトン)パターン」と呼ばれることもあります。
「あるクラスのインスタンスが常にたった1つしか存在していない」という状態を実現したいときに利用されます。
使用例
1.シングルトン(Singleton)パターンのクラスの定義
package com.arkgame.testinfo;
public class Users {
//クラスの生成
private static Users usObj = new Users();
//コンストラクタ
private Users() {
}
//インスタンスを返す
public static Users getInstance() {
return usObj;
}
}
package com.arkgame.testinfo;
public class Users {
//クラスの生成
private static Users usObj = new Users();
//コンストラクタ
private Users() {
}
//インスタンスを返す
public static Users getInstance() {
return usObj;
}
}
package com.arkgame.testinfo; public class Users { //クラスの生成 private static Users usObj = new Users(); //コンストラクタ private Users() { } //インスタンスを返す public static Users getInstance() { return usObj; } }
2.インスタンスの比較クラス
package com.arkgame.testinfo;
public class SingletonDemo {
public static void main(String[] args) {
// インスタンスcftAが生成されます
Users cftA = Users.getInstance();
// インスタンスcftBが生成されます
Users cftB = Users.getInstance();
if(cftA == cftB) {
System.out.println("インスタンスAとインスタンスBの比較結果が同じです");
}
}
}
package com.arkgame.testinfo;
public class SingletonDemo {
public static void main(String[] args) {
// インスタンスcftAが生成されます
Users cftA = Users.getInstance();
// インスタンスcftBが生成されます
Users cftB = Users.getInstance();
if(cftA == cftB) {
System.out.println("インスタンスAとインスタンスBの比較結果が同じです");
}
}
}
package com.arkgame.testinfo; public class SingletonDemo { public static void main(String[] args) { // インスタンスcftAが生成されます Users cftA = Users.getInstance(); // インスタンスcftBが生成されます Users cftB = Users.getInstance(); if(cftA == cftB) { System.out.println("インスタンスAとインスタンスBの比較結果が同じです"); } } }
3.実行結果
インスタンスAとインスタンスBの比較結果が同じです