单例模式的三个要点:
1.某个类只能有一个实例。
2.必须自行创建这个实例。
3.必须自行向整个系统提供这个实例。
个人的理解 单例模式一个内循环,并且对外只有一个入口的模式,外界只能通过这个入口访问到这个单例,其他都单例自身去操作,比如实例化自己,判断自己是否已经存在等等 都是有单例本身自己去判断
根据单例的三个要点 我们就需要创建一下方法是满足这三个要求
1 某个类只能有一个实例 那么他就不能被私自创建,不能被克隆
//防止直接创建对象
private function __construct(){
这里是你的初始化处理
}
//防止克隆对象
private function __clone(){
trigger_error('禁止克隆' ,E_USER_ERROR);
}
2 必须自行创建这个实例。为什么是要自行创建这个实例,因为如果他不自己创建自己,那么他只能由他人创建,那么就有空被创建多个,那么这就失去了单例的意义,同时他还要像整个系统提供这个实例,那么他就必须整个系统提供获取这个实例的入口
private static $instance;
static public function getInstance(){
//判断$instance是否是当前类的对象
//没有则创建 那么就自己实例化自己 并静态存储供全部人使用
if (!self::$instance instanceof self) {
self::$instance = new self();
}
return self::$instance;
}
然后下面的就是该类本身的逻辑
以上就是个人对单例设计模式的理解 如有不对 请多多指教