在PHP中实现单态模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。以下是一个简单的单态模式PHP实例:
实例:单态模式实现数据库连接
假设我们想要创建一个数据库连接类,确保整个应用程序中只有一个数据库连接实例。
步骤 1: 创建数据库连接类
```php
class Database {
private static $instance = null;
private $connection;
private function __construct() {
// 这里假设有一个方法来建立数据库连接
$this->connection = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new Database();
}
return self::$instance;
}
// 防止通过clone创建新实例
private function __clone() {}
// 防止反序列化
private function __wakeup() {}
public function getConnection() {
return $this->connection;
}
}
```
步骤 2: 使用单态模式类
```php
// 创建数据库连接实例
$db1 = Database::getInstance();
$conn1 = $db1->getConnection();
// 再次尝试创建实例
$db2 = Database::getInstance();
$conn2 = $db2->getConnection();
// 验证两个实例是否相同
if ($db1 === $db2 && $conn1 === $conn2) {
echo "