zoukankan      html  css  js  c++  java
  • php 单例模式

    单例模式特点:在程序执行过程里,只有一个类对象存在

    单例模式的三要素:

    1.构造方法私有化(禁止类外部用new的方式实例化类)

    2.禁止克隆(允许克隆的话,将可以克隆出多个对象)

    3.拥有一个静态方法,方法中进行仅一次对象实例化,允许类外部调用

    例子如下:

    class Single {
    
            private static  $singleOb;
    
            private function __construct() {
                    
            }
    
            static function single() {
                    if (!self::$singleOb instanceof Single) {//判断self::$singleOb中有没有Single类的实例化对象
                            self::$singleOb = new Single();
                            return self::$singleOb;
                    } else {
                            return self::$singleOb;
                    }
            }
    
            public function __clone() {
                    
                    trigger_error('Clone is not allow' ,E_USER_ERROR);//报错
            }
    
            public function test() {
                    echo "single test";
            }
    
    }

    测试:

    1.正确方式
    $singleOb = Single::single(); var_dump($singleOb); $singleOb -> test();

    2.禁止克隆 $oc=clone($singleOb); var_dump($oc);

    3.禁止外部调用构造函数 $ob = new Single(); $ob -> test();
  • 相关阅读:
    iperf简单说明
    计算后图像大小参数计算
    ipywidgets安装报错
    Cannot uninstall [pacakage]. It is a distutils installed project
    torch
    es-centos7安装注意细节
    jupyter 指定特定的环境
    未来方向
    深度学习过拟合处理
    归一化
  • 原文地址:https://www.cnblogs.com/xiaoyueer/p/4495133.html
Copyright © 2011-2022 走看看