Singleton Pattern ช่วยให้มั่นใจว่าคลาสมีเพียงหนึ่งอินสแตนซ์และให้จุดส่วนกลางในการเข้าถึง ทำให้แน่ใจว่ามีเพียงออบเจ็กต์เดียวเท่านั้นที่พร้อมใช้งานทั่วทั้งแอปพลิเคชันในสถานะควบคุม รูปแบบซิงเกิลตันให้วิธีในการเข้าถึงออบเจ็กต์เดียวซึ่งสามารถเข้าถึงได้โดยตรงโดยไม่จำเป็นต้องยกตัวอย่างอ็อบเจ็กต์ของคลาส
ตัวอย่าง
<?php
class database {
public static $connection;
private function __construct(){
echo "connection created";
}
public function connect(){
if(!isset(self::$connection)){
self::$connection = new database();
}
return self::$connection;
}
}
$db = database::connect();
$db2 = database::connect();
?> ผลลัพธ์
connection created
คำอธิบาย
ในตัวอย่างข้างต้น เนื่องจากเรากำลังติดตามรูปแบบซิงเกิลตัน ดังนั้น อ็อบเจกต์ $db2 จึงไม่สามารถสร้างได้ จะมีการสร้างวัตถุเพียงชิ้นเดียวและสามารถใช้ได้ทั่วทั้งแอปพลิเคชัน