Sobes.tech
Junior — Middle

консепти паттерни Singleton ва хусусиятҳои асосии онро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

نمونه‌کار Singleton تضمین می‌کند که یک کلاس تنها یک نمونه داشته باشد و یک نقطه دسترسی جهانی به این نمونه فراهم می‌کند. این در زمانی مفید است که نیاز به مدیریت متمرکز وضعیت یا منابع باشد، مثلاً هنگام کار با تنظیمات برنامه یا مدیر پایگاه داده.

ویژگی‌های اصلی Singleton:

  • فقط یک نمونه: کلاس کنترل ایجاد شیء را بر عهده دارد و اجازه نمی‌دهد بیش از یکی ساخته شود.
  • دسترسی جهانی: نمونه از هر قسمت برنامه از طریق یک روش یا ویژگی استاتیک در دسترس است.
  • مقداردهی اولیه تنبل: شیء در اولین مراجعه ساخته می‌شود (lazy initialization).

مثال پیاده‌سازی Singleton در Dart (Flutter):

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
}

در اینجا، سازنده خصوصی است و دسترسی به نمونه از طریق سازنده کارخانه‌ای انجام می‌شود که همیشه همان شیء را برمی‌گرداند.