Middle
Ի՞նչ է Singleton դիզայնի նմուշը երկու անգամ ստուգելու հետ:
sobes.tech AI
Պատասխան AI-ից
Singleton մոդելը երաշխավորում է, որ միայն մեկ օրինակ կստեղծվի դասից և տրամադրում է գլոբալ մուտքի կետ դրա համար: Double-Checked Locking (Երկակի ստուգումով սեղմում) օպտիմիզացիա է Lazy-սկզբնավորման համար շատ-թելային միջավայրում:
public class Singleton {
private static volatile Singleton instance; // 'volatile' երաշխավորում է փոփոխությունների տեսանելիությունը բոլոր թելերում
private Singleton() {
// Պատմական կոնստրուկտոր՝ կանխելու համար ուղիղ օրինակների ստեղծումը
}
public static Singleton getInstance() {
if (instance == null) { // Առաջին ստուգում՝ անհրաժեշտ չէ սինխրոնիզացիա, եթե օբյեկտը արդեն ստեղծված է
synchronized (Singleton.class) { // Սինխրոնիզացիայի բլոկ
if (instance == null) { // Երկրորդ ստուգում՝ կանխելու համար մի քանի օրինակների ստեղծումը, եթե մի քանի թել անցնում է առաջին ստուգումը
instance = new Singleton(); // Օբյեկտի սկզբնավորումը
}
}
}
return instance;
}
}