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