单例模式
- 一句话,
限制入口,提供单一出口, 从出口上判断是否重复
- 如果对象没有实例化则实例化,然后 return 回去。
- 如果已经实例化,直接拿出来return 回去。
// 单例模式, 某个类的对象, 只允许创建一个
// 例如,单例模式实现所有查询只进行一次数据库连接
namespace Singleton;
class DB {
// 4. 设置一个外部不允许访问的类成员
private $conn;
// 1. 禁止实例化db,不允许通过new方式连接
// 那只能写静态方法 给数据库连接请求一个连接方法
private function __construct()
{
}
// 2. 通过公有方法,类静态调用方式连接
public static function getConnect()
{
// 4. 进行判断, 如果连接存在, 则返回连接, 如果不存在生成连接
if( !self::$conn ){
// 3. 对DB类实例化
self::$conn = new self();
return self::$conn;
}else{
return self::$conn;
}
}
}