简单来说,单例模式,就是创建的实例必须是唯一的。而不是通过new来实例化大量的对象。在这里,我用php代码进行了演示。
主要特点:
1、有且只有一个实例
2、只能自己实例化自己
3、可以被别人获取
这样就引申了其中方法的设置
1、构造方法必须设置为private,这样其他人就无法进行新的实例了,保证了唯一性
2、拥有保存类实例的静态属性
3、提供一个公有方法,让其他人来访问实例
如下代码:
<?php
class Test{
private $name;
private function __construct(){//防止其他人进行实例化
}
static public $instance;
static public function get_instance(){
if(!self::$instance){
self::$instance = new static();
}
return self::$instance;
}
}
var_dump(Test::get_instance());
var_dump(Test::get_instance());
?>
可以看到他们共用了同一个对象实例
用处
可用于数据库、redis等资源连接