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

    单例模式:指的是一个对象的模式,指一个类只能创建一个对象。

    既然限制一个类只能创建一个对象,就是说要关闭其他创建对象的途径。

    所以实现单例,必须满足一下条件:

    1.不让克隆(私有克隆方法)

    2.不让创建对象(私有构造方法,不能在类外部使用new关键字创建对象)

    3.在类中创建对象(静态方法)

    4.判断对象是否存在,如果存在返回原对象,否则创建新对象

    使用单例模式好处在于可以节省资源,比如Db类设计,比如window系统常见的资源管理器。

    <?php
    class Single{
    //定义一个属性保存对象
        private static $single; 
        
        //私有构造方法
        private function __construct($name){
            $this->$single = $name;
        }
        
        //私有化克隆方法
        private function __clone(){
        }
        
        //静态方法:让类进入到类的内部进行实例化得到对象
         public static function getInstance($name){
             //判断对象是否存在,如果存在返回原对象,否则创建新对象
             if(!self::$single){
                  self::$single = new Single($name);
             }
             return self::$single;
         }
    }
    $single = Single::getInstance('libai');
    var_dump($single);$single = Single::getInstance('dufu');
    var_dump($single);
    
  • 相关阅读:
    51nod 1031+斐波那契和杨辉三角的一些基础知识
    51nod 1297
    萌新二叉树学习笔记
    HDU3415【单调队列】
    萌新瞎讲网络流之最大流【不定期更新理解篇】
    萌新浅谈单调队列
    51nod 1021【区间DP】
    51nod 1278【贪心】
    51nod 1413
    51nod1181【素数筛】
  • 原文地址:https://www.cnblogs.com/lzy007/p/7055924.html
Copyright © 2011-2022 走看看