الگوی طراحی Singleton

الگوی طراحی Singleton چیست؟

Singleton کلاسی است که فقط یک شی از آن می توان ساخت! این نوع کلاس کاربرد های مختلفی می تواند داشته باشد و بستگی به شما (برنامه نویس) خواهد داشت که چرا و چگونه بخواهید از آن استفاده کنید.

مثال های مختلفی برای Singleton می توان یافت ، به عنوان مثال :

  • در بازی ها کلاس های برای مدیریت منابع (Resource) معمولاً به سبک Singleton نوشته می شوند و یک بار در یک کلاس (مثلاً کلاسی به نام ResourceManager) منابع مورد نیاز بارگذاری می شوند و تنها یک شی از کلاس ResourceManager ایجاد شده و همه کلاس های دیگر در طول اجرای برنامه از این کلاس به صورت Singleton استفاده می کنند.
  • فرم های ورود (Login) : معمولاً فرم های ورود به صورت کلاس هایی ساخته می شوند که یک بار راه ارتباطی با سرور نگه دارنده نام های کاربری و رمز های عبور ایجاد شده و سپس با فراخوانی متد authenticate روی این کلاس عمل اعتبار سنجی رمز عبور و نام کاربری صورت می گیرد.
  • مدیریت حافظه : برنامه ای را در نظر بگیرید کلاس خاصی از آن وظیفه تخصیص یا گرفتن حافظه را داشته باشد ، در چنین برنامه هایی این کلاس یک بار یک شی از آن ساخته می شود تا حافظه ای که به آن تعلق داده می شود ثابت باشد و جا به جا نشود.(مثلاً برنامه های مدیریت Catch).
  • کلاسی را در نظر بگیرید که از آن برای ثبت Log در سیستم استفاده می کنیم و همه Log ها را روی یک فایل می نویسیم ، ایده خوبی است اگر یک شی از این کلاس در برنامه وجود داشته باشد و با فراخوانی یک متد بتوانیم Log مورد نظر را ثبت کنیم.