Java8にシングルトン(Singleton)パターンクラスを利用する

環境
Windows 10 64bit
Eclipse 2019
Java8

説明
「Singleton(シングルトン)」はデザインパターンの一種です。「Singleton(シングルトン)パターン」と呼ばれることもあります。
「あるクラスのインスタンスが常にたった1つしか存在していない」という状態を実現したいときに利用されます。

使用例
1.シングルトン(Singleton)パターンのクラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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.インスタンスの比較クラス

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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の比較結果が同じです

Java

Posted by arkgame