Sobes.tech
Junior — Middle

Чӣ гуна моделрои Singleton-ро дар Java амалӣ кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Модели Singleton кафолат медиҳад, ки дар синф танҳо як нусха вуҷуд дошта бошад ва ба он нуқтаи дастрасии глобалӣ медиҳад.

Дар Java, ин метавонад бо чанд роҳ амалӣ карда шавад. Яке аз вариантҳои содда ва бехатар барои ҷараёнҳо истифодаи оғозёбии суст бо калидвожа synchronized ё истифодаи синфи дохилии статикӣ мебошад.

Масалан бо истифодаи синфи дохилии статикӣ:

public class Singleton {
    private Singleton() {
        // конструктори хусусӣ
    }

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

    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }
}

Ин усул кафолат медиҳад, ки нусха танҳо дар аввалин даъвати getInstance() эҷод мешавад ва бехатар барои ҷараёнҳо бидуни истифодаи synchronized.