zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    第十三周助教小结
    记事本
    第十二周助教小结
    与周老师会谈之后的感想
    第十一周总结
    第十周助教总结
    听周筠老师一席话,受益匪浅
    2020软件工程作业04
    2020软件工程作业02
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/nyfz/p/15562521.html
Copyright © 2011-2022 走看看