ผลต่างระหว่างรุ่นของ "แบบแผนซิงเกิลตัน"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
TjBot (คุย | ส่วนร่วม)
r2.7.2) (โรบอต เพิ่ม: gl:Singleton
OctraBot (คุย | ส่วนร่วม)
replaceViaSearch: เทร็ด
บรรทัด 5:
ซิงเกิลตันแพตเทิร์นถูกสร้างโดยเขียนคลาสให้ซ่อนคอนสทรัคเตอร์ทั้งหมดไว้จากคลาสอื่นๆ คือให้คอนสทรัคเตอร์เป็นไพรเวท จากนั้นสร้างเมธอดมีหน้าที่สร้างอ็อบเจกต์ของคลาสนี้ถ้ายังไม่ถูกสร้างและเก็บอ็อบเจกต์ตัวที่ถูกสร้างใหม่นี้ไว้ จากนั้นส่งคืนอ็อบเจกต์เพียงตัวเดียวนั้นให้ทุกครั้งที่มีการร้องขออ็อบเจกต์ของคลาส
 
ข้อควรระวังสำหรับการใช้ซิงเกิลตันแพตเทิร์นในโปรแกรมที่ทำงานแบบ multi-threading คือหลายส่วนของโปรแกรมอาจจะพยายามเรียกเมธอดให้สร้างอ็อบเจกต์เป็นครั้งแรกในเวลาเดียวกัน อาจทำให้มีการสร้างอ็อบเจกต์ขึ้นมาเกินหนึ่งตัวได้ ในกรณีนี้ควรป้องกันโดยอนุญาตให้เพียงหนึ่งเธรดเทร็ดเรียกเมธอดได้ในขณะใดขณะหนึ่ง (mutually exclusive)
 
== ตัวอย่างโค้ด ==