บ้าน พัฒนาการ ซิงเกิลคืออะไร - คำจำกัดความจาก techopedia

ซิงเกิลคืออะไร - คำจำกัดความจาก techopedia

สารบัญ:

Anonim

คำจำกัดความ - Singleton หมายถึงอะไร

ซิงเกิลตันเป็นคลาสที่อนุญาตให้สร้างเพียงอินสแตนซ์เดียวของตัวเองและให้การเข้าถึงอินสแตนซ์ที่สร้างขึ้นนั้น มันมีตัวแปรคงที่สามารถรองรับอินสแตนซ์ที่ไม่ซ้ำกันและส่วนตัวของตัวเอง มันถูกใช้ในสถานการณ์เมื่อผู้ใช้ต้องการ จำกัด การสร้างอินสแตนซ์ของคลาสให้กับวัตถุเดียวเท่านั้น สิ่งนี้มีประโยชน์โดยปกติเมื่อจำเป็นต้องมีวัตถุหนึ่งชิ้นเพื่อประสานการทำงานกับระบบ


รูปแบบซิงเกิลที่ใช้ในการเขียนโปรแกรมภาษาเช่น Java และ. NET เพื่อกำหนดตัวแปรทั่วโลก วัตถุเดียวที่ใช้ในระบบยังคงที่และจำเป็นต้องกำหนดเพียงครั้งเดียวมากกว่าหลายครั้ง

Techopedia อธิบาย Singleton

ซิงเกิลตันมีจุดประสงค์เพื่อจัดทำอินสแตนซ์ของตัวเองเพียงอินสแตนซ์เดียวในขณะที่อำนวยความสะดวกในการเข้าถึงทั่วโลก การใช้รูปแบบซิงเกิลเกี่ยวข้องกับการสร้างคลาสด้วยวิธีการที่สร้างอินสแตนซ์ใหม่ของคลาส ในการใช้รูปแบบซิงเกิลหลักการของอินสแตนซ์เดียวและการเข้าถึงทั่วโลกต้องเป็นที่พอใจ คลาส singleton เป็นเหมือนพื้นที่เก็บข้อมูลส่วนกลางสำหรับอินสแตนซ์ของตัวเองทำให้คอนสตรัคเตอร์เป็นส่วนตัว ดังนั้นไม่สามารถสร้างอินสแตนซ์นอกคลาสได้เลยและซิงเกิลตันสามารถมีเพียงอินสแตนซ์เดียวเท่านั้น คลาส singleton สร้างความรวดเร็วและรักษาอินสแตนซ์นั้นข้ามระบบ


บทคัดย่อโรงงานผู้สร้างและรูปแบบต้นแบบสามารถใช้ซิงเกิลตัน วัตถุด้านหน้าและวัตถุคงที่มักเป็นแบบซิงเกิล การใช้งานซิงเกิลตันต้องการกลไกที่สมาชิกคลาสสามารถเข้าถึงได้โดยไม่ต้องสร้างคลาสอ็อบเจ็กต์และยึดค่าของสมาชิกคลาสระหว่างอ็อบเจ็กต์คลาส ขั้นตอนที่เกี่ยวข้องในการสร้างซิงเกิลตันมีดังนี้:

  1. ตัวสร้างถูกทำให้เป็นส่วนตัว สิ่งนี้อนุญาตให้คลาสเท่านั้นที่สามารถเข้าถึงซิงเกิล
  2. ตัวอย่าง:

    คลาส testdata

    {

    ข้อมูลทดสอบส่วนตัว ()

    {

    // …ไม่มี op สำหรับ singleton

  3. อินสแตนซ์ภายในเดียวของคลาสนั้นถูกสร้างขึ้นโดยใช้วิธีการ วิธีการนี้เรียกว่าอินสแตนซ์ในตัวอย่างนี้ วิธีการ "อินสแตนซ์" ถูกใช้เพื่อเริ่มต้นคลาสเพื่อเข้าถึงอินสแตนซ์เดียว เมธอดอินสแตนซ์ถูกทำเครื่องหมายเป็นสแตติกในตัวอย่างนี้เพื่อให้การเข้าถึงเธรดทั้งหมดสอดคล้องกัน นอกเหนือจากการสร้างอินสแตนซ์คำสั่ง“ ล็อค” จะใช้เพื่อควบคุมการเข้าถึงแบบมัลติเธรด สิ่งนี้ล็อคการสร้างอินสแตนซ์ไปที่เธรดเดียว


    ตัวอย่าง:


    // Lazy การสร้างอินสแตนซ์ภายในซิงเกิล

    สาธารณะข้อมูล testdata คงที่

    {

    ได้รับ

    {

    ล็อค (ประเภทของ (testdata))

    {

    ถ้า (_instance == null)

    _instance = testdata ();

    }

    ส่งคืน _instance;

    }

    }

ซิงเกิลคืออะไร - คำจำกัดความจาก techopedia