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();
  • 相关阅读:
    MySQL严格模式总结
    python筛选关键字---error
    将pem证书转换成p12格式证书
    ## 游戏网关源码赏析
    pid获取
    顺序io_磁盘队列
    nsq源码阅读3_编译nsqd
    nsq源码阅读2_核心数据结构
    nsq源码阅读1_目录结构
    如何设计Mqtt的Retain?
  • 原文地址:https://www.cnblogs.com/xiaoyueer/p/4495133.html
Copyright © 2011-2022 走看看