Ich habe diesen Code für Singleton im Internet gefunden, wollte aber wissen, wie ich ihn in meinem Java-Code implementieren kann.

static FKPlugin instance;

onEnable:
    instance = this;
onDisable:
    instance = null;

public static FKPlugin getInstance():
    return instance;
-1
Raffon 8 Feb. 2020 im 10:38

3 Antworten

Beste Antwort

Der beste Weg, um ein Singleton-Muster in Java zu implementieren, ist über ENUMS. Sie können den folgenden Code für dasselbe verwenden:

Aufzählungsklasse:

public enum SingletonEnum {
    INSTANCE;
    int value;
    public int getValue() {
        return value;
    }
    public void setValue(int value) {
        this.value = value;
    }
}

Klasse anrufen:

public class EnumDemo {
    public static void main(String[] args) {
        SingletonEnum singleton = SingletonEnum.INSTANCE;
        System.out.println(singleton.getValue());
        singleton.setValue(2);
        System.out.println(singleton.getValue());
    }
}
1
Shivam Mohan 8 Feb. 2020 im 07:43

Es folgt eine Demonstration der Verwendung des Singleton-Musters in Java. Es wird Lazy Initialization verwendet, sodass die Singleton-Instanz nur auf Abruf zugewiesen wird.

Die Idee hinter dem Singleton-Muster besteht darin, sicherzustellen, dass eine Klasse nur eine Instanz hat, und gleichzeitig einen globalen Zugriffspunkt auf diese Instanz bereitzustellen .

Um dies zu erreichen, besteht die grundlegende Methode darin, den Konstruktor privat zu halten und gleichzeitig eine öffentliche Methode zum Abrufen der Singleton-Instanz dieser Klasse bereitzustellen.

import java.util.*;
import java.lang.*;
import java.io.*;

class Box
{
    private int x,y,z;
    private static Box instance;

    private Box(){
        x=y=z=2;
    }

    public static Box getSingleTonInsnace(){
        if(instance == null){
            instance = new Box();
        }
        return instance;
    }
    public String toString(){
        return String.format("Box with volume = %d", x*y*z);
    }

}

public class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Box box = Box.getSingleTonInsnace();
        System.out.println(box);
    }
}

Sie können auch diesen Link anzeigen, um dies zu erfahren Weitere Informationen zu anderen Möglichkeiten zur Verwendung von Singleton-Mustern in Java.

0
FahimAhmed 8 Feb. 2020 im 07:56

Dies ist das Singleton-Muster, Sie können nach Google suchen. Ex :

public final class Singleton {
    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
        return INSTANCE;
    }
}
1
陳昇昇 8 Feb. 2020 im 07:44