一. 单例模式的特点
- 一个类在整个应用中只能有一个实例
- 该类必须自行在内部创建这个实例
- 必须可以自行向整个系统提供这个实例
应用场景: 在一个应用中会存在大量连接数据库的操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的内存资源和系统资源,而且每次打开和关闭数据库连接都是对数据库的一种极大考验和浪费。
二 . 代码要点
1. __construct和__clone这两个方法必须设为私有,防止外部new 对象和clone 对象
2.提供一个静态的公共方法给外部获取实例,该公共方法要实现提供实例子的逻辑
<?php
Class Demo
{
//保存实例的成员变量
private static $_instance ;
//构造方法(设为私有禁止实例调用)
private function __construct()
{
}
//克隆魔术方法(设为私有禁止实例调用)
private function __clone()
{
}
//获取实例
static public function getInstance()
{
if(!(self::$_instance instanceof self)){
self::$_instance = new self();
}
return self::$_instance;
}
}
$demo = Demo::getInstance();
var_dump($demo);