Mam do zmodyfikowania kod zgodnie ze wzorcem singelton moze ktos pomoc?? Zrobiłem takie cos i nie wiem czy to jest dobrze.


package Singelton;
import java.util.*;
import java.math.*;

public class prog02
{
    static long fibonacci(long n)
    {
        licz.inc();
        if(n == 0 || n == 1) return 1;
        return fibonacci(n-1) + fibonacci(n-2);
    }
    static Licznik licz = new Licznik();
    public static void main(String[] args)
    {
        System.out.println("fibonacci(10) = " + fibonacci(10));
    }
}

class Licznik implements Runnable
{
    private volatile static Licznik instance;
    private Licznik(){}

    public static Licznik GetInstance()
    {
        (instance == null)
        {
            synchronized (Licznik.class)
            {
                    instance = new Licznik();
            }
        }
        return instance;
    }
    private long i = 0;
    public Licznik()
    {
        Runtime.getRuntime().addShutdownHook(new Thread(this));
    }
    public void inc()
    {
        i++;
    }
    public void run()
    {
        System.err.println("stan licznika: " + i);
    }
}