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

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Obiconbig (คุย | ส่วนร่วม)
Poonyo (คุย | ส่วนร่วม)
บรรทัด 1:
[[ไฟล์:singleton_class_diagram.jpg|framethumb|โครงสร้างของคลาสซิงเกิลตัน ในแบบ [[UML]]]]
{{รอการตรวจสอบ}}
'''ซิงเกิลตันแพตเทิร์น'''แพตเทิร์น ({{lang-en|Singleton pattern}}) เป็น[[Design Patterns|ดีไซน์แพตเทิร์น]]ที่ใช้จำกัดจำนวน[[อ็อบเจกต์]]ที่ถูกสร้างในขณะที่โปรแกรมทำงาน มีประโยชน์ในสถานการณ์ที่ทั้งระบบต้องมีอ็อบเจกต์เพียงตัวเดียวเพื่อจะได้ไม่เกิดการทำงานซ้ำซ้อนกัน ตัวอย่างเช่น[[คลาส]]ที่ใช้สำหรับเป็นศูนย์รวมการตั้งค่าปรับแต่ง (configuration) ของโปรแกรมคอมพิวเตอร์ เมื่อเริ่มโปรแกรมอ็อบเจกต์ของคลาสนี้จะอ่านค่าตั้งต้นจากไฟล์ ผู้ใช้โปรแกรมสามารถทำการปรับเปลี่ยนค่าและเซฟไฟล์เพื่อการใช้งานครั้งต่อไป ในกรณีนี้เราต้องการให้ทุกๆ ส่วนของโปรแกรมใช้อ็อบเจกต์ซิงเกิลตันเพียงตัวเดียวร่วมกัน เพื่อที่ทุกส่วนทำงานสัมพันธ์กันและไม่ต่างส่วนต่างเปลี่ยนแปลงค่าโดยส่วนอื่นๆ ไม่รับรู้
 
== การนำไปใช้งาน ==
[[ไฟล์:singleton_class_diagram.jpg|frame|โครงสร้างของคลาสซิงเกิลตัน ในแบบ [[UML]]]]
 
ซิงเกิลตันแพตเทิร์นถูกสร้างโดยเขียนคลาสให้ซ่อนคอนสทรัคเตอร์ทั้งหมดไว้จากคลาสอื่นๆ คือให้คอนสทรัคเตอร์เป็นไพรเวท จากนั้นสร้างเมธอดมีหน้าที่สร้างอ็อบเจกต์ของคลาสนี้ถ้ายังไม่ถูกสร้างและเก็บอ็อบเจกต์ตัวที่ถูกสร้างใหม่นี้ไว้ จากนั้นส่งคืนอ็อบเจกต์เพียงตัวเดียวนั้นให้ทุกครั้งที่มีการร้องขออ็อบเจกต์ของคลาส
 
เส้น 64 ⟶ 62:
}
</source>
 
 
=== ภาษา PHP ===
เส้น 86 ⟶ 83:
 
== อ้างอิง ==
{{รายการอ้างอิง}}
{{เริ่มอ้างอิง}}
* Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2) โดย Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides (Gang of four: GoF)
{{จบอ้างอิง}}
 
== แหล่งข้อมูลอื่น ==
* [http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html Simply Singleton] โดย David Geary {{en icon}}
* [http://msdn2.microsoft.com/en-us/library/ms954629.aspx Exploring the Singleton Design Pattern] {{en icon}}
 
[[หมวดหมู่:การเขียนโปรแกรม]]
{{โครงซอฟต์แวร์}}
 
[[bg:Сек (шаблон)]]