Синглтон java реализация - PullRequest
       5

Синглтон java реализация

0 голосов
/ 08 февраля 2020

Я нашел этот код в inte rnet для синглтона, но я хотел знать, как я могу реализовать его в моем java коде?

static FKPlugin instance;

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

public static FKPlugin getInstance():
    return instance;

Ответы [ 3 ]

1 голос
/ 08 февраля 2020

Это шаблон синглтона, вы можете искать в Google. например:

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

    private Singleton() {}

    public static Singleton getInstance() {
        return INSTANCE;
    }
}
1 голос
/ 08 февраля 2020

Лучший способ реализовать шаблон синглтона в java - через ENUMS. Вы можете использовать тот же код ниже:

Enum Class:

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

Класс вызова:

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());
    }
}
0 голосов
/ 08 февраля 2020

Ниже приведена демонстрация использования шаблона Singleton в java. Он использует Ленивая инициализация , так что экземпляр-одиночка выделяется только по вызову.

Идея одноэлементного шаблона заключается в том, чтобы в основном обеспечить, чтобы класс имел только один экземпляр , в то же время предоставляя глобальную точку доступа к этому экземпляру .

И чтобы достичь этого, базовая c методология состоит в том, чтобы сохранять конструктор закрытым, в то же время предоставляя метод publi c для получения экземпляра-одиночки этого класса .

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);
    }
}

Вы также можете просмотреть эту ссылку , чтобы узнать больше о других способах использования шаблона синглтона в java.

...