PHP - 单例模式

<?php

//单例模式:例如只有一个db类的时候保证只new一次

//第一步:普通类

class sigle{

  protected static $ins = null();

//第二步:封锁 new 操作

  public static function getIns(){

    if(self ::$ins === false){

      self::$ins = new self();

    }

    return self::$ins;

  }

//每次 new 都会触发构造方法,把构造方法改成受保护的 protected

//第五步:加上 final 防止子类基础后重新定义构造函数

  final protected function __construct(){}

//clone 克隆也会产生多个对象,需要拒绝克隆

  final protected function __clone(){}

}

$s1 = sigle::getIns();

$s2 = clone $s1;

//如果像下面一样继承父类可以重新定义构造函数,可以 new 多个,所以需要把父类中的构造函数禁止

class multe extends sigle{

  public function __construct(){}

}

?>

https://www.bilibili.com/video/BV1r7411j7Gc?p=6&spm_id_from=pageDriver

posted @ 2021-11-16 17:46  让双脚&去腾空  阅读(22)  评论(0编辑  收藏  举报