Junior — Middle
გთხოვთ, განმარტოთ Singleton-ის ნიმუშის კონცეფცია და მისი ძირითადი მახასიათებლები.
sobes.tech AI
პასუხი AI-სგან
სინგლტონი ნიმუში უზრუნველყოფს, რომ კლასი მხოლოდ ერთი მაგალითი ჰქონდეს და გლობალურ წვდომის წერტილს უზრუნველყოფს ამ მაგალითზე. ეს სასარგებლოა, როდესაც საჭიროა ცენტრალიზებული მართვა მდგომარეობის ან რესურსების, მაგალითად, აპლიკაციის პარამეტრების ან მონაცემთა ბაზის მენეჯერის მუშაობისას.
სინგლტონის ძირითადი მახასიათებლები:
- მხოლოდ ერთი მაგალითი: კლასი აკონტროლებს ობიექტის შექმნას და არ აძლევს საშუალებას შექმნას მეტი.
- გლობალური ხელმისაწვდომობა: მაგალითი ხელმისაწვდომია პროგრამის ნებისმიერი ნაწილიდან სტატიკური მეთოდის ან თვისების საშუალებით.
- სელაზიანი ინიციალიზაცია: ობიექტი შეიქმნება პირველ მიმართვაზე (lazy initialization).
დარტში (Flutter) სინგლტონის განხორციელების მაგალითი:
class Singleton {
Singleton._privateConstructor();
static final Singleton _instance = Singleton._privateConstructor();
factory Singleton() {
return _instance;
}
void someMethod() {
print('სინგლტონის მეთოდის გამოძახება');
}
}
void main() {
var s1 = Singleton();
var s2 = Singleton();
print(identical(s1, s2)); // true
}
აქ კონსტრუქტორი კერძოა, და წვდომა მაგალითზე ხდება ფაბრიკით კონსტრუქტორის საშუალებით, რომელიც ყოველთვის აბრუნებს ერთსა და იმავე ობიექტს.