Sobes.tech
Junior — Middle

Ներկայացրեք Singleton ձևանմուշի գաղափարը և դրա հիմնական առանձնահատկությունները։

sobes.tech AI

Պատասխան AI-ից

Singleton մոդելը երաշխավորում է, որ դասը ունենա միայն մեկ օրինակ և տրամադրում է այդ օրինակին գլոբալ մուտք։ Սա օգտակար է, երբ անհրաժեշտ է կենտրոնական կառավարում վիճակի կամ ռեսուրսների, օրինակ՝ հավելվածի կարգավորումների կամ տվյալների բազայի մենեջերի հետ աշխատելիս:

Singleton-ի հիմնական առանձնահատկությունները՝

  • Միայն մեկ օրինակ: դասը վերահսկում է օբյեկտի ստեղծումը և թույլ չի տալիս ավելին ստեղծել:
  • Գլոբալ հասանելիություն: օրինակն հասանելի է ծրագրի ցանկացած մասից՝ ստատիկ մեթոդ կամ հատկության միջոցով:
  • Կուշտ սկզբնականացում: օբյեկտը ստեղծվում է առաջին դիմումի ժամանակ (lazy initialization):

Dart (Flutter) լեզվում Singleton-ի իրականացման օրինակ՝

class Singleton {
  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }

  void someMethod() {
    print('Singleton մեթոդի կանչ');
  }
}

void main() {
  var s1 = Singleton();
  var s2 = Singleton();
  print(identical(s1, s2)); // true
}

Այստեղ կոնստրուկտորը մասնավոր է, և մուտքը օրինակին կատարվում է ֆաբրիկային կոնստրուկտորով, որը միշտ վերադարձնում է նույն օբյեկտը։