Sobes.tech
Junior — Middle

Koja je svrha Lazy Singleton paterna i kako se implementira?

sobes.tech АИ

Одговор од АИ

Lazy Singleton obrazac je namenjen za kreiranje jednog jedinstvenog primera klase, pri čemu se taj primer inicijalizuje samo pri prvom pristupu, a ne pri učitavanju klase. Ovo pomaže u uštedi resursa ako objekat možda neće biti potreban.

Primer implementacije Lazy Singleton u Javi koristeći odloženu inicijalizaciju i sinhronizaciju:

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {
        // privatni konstruktor
    }

    public static synchronized LazySingleton getInstance() {
        if (instance == null) {
            instance = new LazySingleton();
        }
        return instance;
    }
}

Ovde se objekat kreira samo pri prvom pozivu getInstance(). Sinhronizacija obezbeđuje sigurnost u višedretvenim okruženjima, ali može uticati na performanse. Za poboljšanje, može se koristiti double-checked locking ili statička unutrašnja klasa.