بخش های اصلی

آموزش الگوهای طراحی

Design Pattern - الگوی Singleton

الگوی Singleton یکی از ساده ترین الگوهای طراحی در جاواست. از آنجایی که این نوع الگوی طراحی یکی از بهترین راه های ایجاد اشیاء را ارائه میده، زیرگروه الگوی تکوینی محسوب میشه.

این الگو شامل تَک کلاس هاییِه که مسئول ایجاد شیء هستن و تضمین می کنن که فقط یک شیء ایجاد بشه. این کلاس راهی برای دسترسی به شیء ای که بصورت مستقیم و بدون نیاز به ایجاد نمونه ای از کلاس می توان به آن دسترسی داشت، را ارائه میده.

پیاده سازی

در این بخش یک کلاس SingleObject ایجاد می کنیم. کلاس SingleObjectدارای سازنده ای بصورت private است و نمونه ای Static از خودش را هم داره.

کلاس SingleObject، متدی static برای گرفتن نمونه ای static از خودش برای دنیای بیرونی، ارائه میده. SingletonPatternDemo، نسخه ی آزمایشی کلاس، از کلاس SingleObject برای گرفتن شیِ SingleObject استفاده می کنه.

singleton pattern uml diagram

مرحله ی 1

ایجاد کلاس Singleton

SingleObject.java

public class SingleObject {

   //create an object of SingleObject
   private static SingleObject instance = new SingleObject();

   //make the constructor private so that this class cannot be
   //instantiated
   private SingleObject(){}

   //Get the only object available
   public static SingleObject getInstance(){
      return instance;
   }

   public void showMessage(){
      System.out.println("Hello World!");
   }
}

مرحله ی 2

گرفتن فقط یک شیء از کلاس singleton

SingletonPatternDemo.java

public class SingletonPatternDemo {
   public static void main(String[] args) {

      //illegal construct
      //Compile Time Error: The constructor SingleObject() is not visible
      //SingleObject object = new SingleObject();

      //Get the only object available
      SingleObject object = SingleObject.getInstance();

      //show the message
      object.showMessage();
   }
}

مرحله ی 3

بررسی خروجی

Hello World!
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش الگوهای طراحی

Learn Design Patterns

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد