Sobes.tech
Junior

Синглтон деген не?

sobes.tech AI

AI-дан жауап

Синглтон — бұл құрастырушы үлгісі, ол класс тек бір ғана экземплярға ие болуын қамтамасыз етеді және осы экземплярға ғаламдық қол жеткізуді ұсынады.

Негізгі идеялар:

  • Бірегей экземпляр: класс үшін бірнеше экземплярдың жасалуына тыйым салады.
  • Глобалды қол жеткізу: статикалық әдіс немесе қасиетті ұсынады, ол бірегей экземплярды қайтарады.

Қолданылуы:

  • Ресурстарға қол жеткізуді басқару (мысалы, дерекқорға қол жеткізу, қолданба параметрлері).
  • Логгинг.
  • Кэштеу.

JavaScript-те жүзеге асыру мысалы:

class Singleton {
  constructor() {
    if (Singleton.instance) {
      return Singleton.instance; // Бар экземплярды қайтарады
    }
    this.data = 'Кейбір деректер'; // Экземплярды инициализациялау
    Singleton.instance = this; // Жаңа экземплярды сақтау
    return this;
  }

  getData() {
    return this.data;
  }

  static getInstance() {
    if (!Singleton.instance) {
      Singleton.instance = new Singleton(); // Егер жоқ болса, экземплярды құру
    }
    return Singleton.instance; // Бар немесе жаңа экземплярды қайтарады
  }
}

// Қолдану
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();

// instance1 және instance2 бір объектке сілтеме жасайды
console.log(instance1 === instance2); // шын мәнінде

Артықшылықтары:

  • Бірегей экземплярға бақылаулы қол жеткізу.
  • Объектілермен жұмыс істеуде ресурстарды үнемдеу, әсіресе құруға көп шығын кететін жағдайда.

Кемшіліктері:

  • Тестілеуді қиындатуы мүмкін, себебі синглтонның күйі қолданбаның әртүрлі бөліктеріне әсер етуі мүмкін.
  • Егер синглтон тым көп нәрсеге жауап берсе, жалғыз жауапкершілік принципін бұзуы мүмкін.
  • Көп ағынды ортада, ағындар қауіпсіздігін қамтамасыз ету үшін ерекше сақтық қажет.