رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
الگوی طراحی Singleton (حل شد)
#1
با سلام:
میخواستم الگوی طراحی Singleton رو برای من توضیح بدین ... ممنون
پاسخ
تشکر شده توسط:
#2
گاهی اوقات توی برنامه شرایطی پیش میاد که از یه کلاس خاص میخواین فقط یکی توی حافظه باشه. یعنی اگه چندین بار از روی کلاس شئ ساخته بشه، فقط همون شئ اولیه برگردونده بشه. یکی از کاربردهای این سیستم توی کلاسهایی موسوم به Registry هست. در این کلاسها، هر بخش از برنامه که بخواد با این کلاس کار کنه، یه شئ ازش میسازه و ازطریق اون به تمام مقادیری که بخشهای دیگه برنامه داخل این کلاس ایجاد کرده بودن، دسترسی پیدا میکنه و میتونه مقادیر خودش رو هم بهش اضافه کنه تا بقیه بتونن بخونن. الگوی طراحی Singleton برای همین منظور طراحی شده. روش کارش هم خیلی ساده است:

public class Reigstry {
    private static Registry instance = new Registry();

    private Registry() {
    }

    public static Registry getInstance() {
        return Registry.instance;
    }

    /* Other code goes here */
}

ابتدا باید سازنده رو private کنیم تا کسی نتونه با new از کلاس شئ بسازه. بعد یه فیلد static از نوع کلاس تعریف میکنیم و داخل خود کلاس new میکنیم (چون توی بدنه کلاس هستیم به سازنده private دسترسی داریم). درنهایت یه متد تعریف میکنیم که شئ استاتیک رو برمیگردونه. حالا اینطوری میتونیم دهها بار getInstance رو صدا بزنیم و همیشه همون شئ اول برگردونده میشه که موقع بارگذاری کلاس در حافظه، تعریف شده:

Registry r1 = Registry.getInstance();
Registry r2 = Registry.getInstance(); // r1 == r2
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان