美文网首页
php实现单例模式

php实现单例模式

作者: 进击的PHPer | 来源:发表于2019-03-12 10:56 被阅读0次

什么是设计模式:设计模式是指设计某个程序的方式。

今天我们简析一下单例模式

单例模式:一个类只能最多创建出一个对象

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

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

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

3。进入类的内部创建对象(使用静态方法)

4.在类中使用静态属性来保存创建的对象,来判断下次还能不能创建新对象。代码实现

//单例模式:一个类只能创建一个对象

class Single

{

        //属性

        private    $name;

        public static $counts=0;

        //定义一个静态属性来保存对象

        private static $single;

        //私有化构造方法

        private function __construct(){

                $this->name=$name;

                //计数

                self::$counts++;

        }

        //私有化克隆魔术方法

        private function __clone()

        {

                //计数

                self::$counts++;

        }

        //静态方法,让类进入到类的内部进行实例化得到对象

        public static function getInstance($name)

        {

                //判断对象是否存在,如果存在则直接返回,否则创建

                if(self::$single)

                {

                        //判断对象是否存在,如果存在则直接返回原来的对象,否则创建

                        return self::$single;

                }else{

                        //创造一个对象

                        self::$single=new Single($name);

                        //返回对象

                        return self::$single;

                }

        }

}

//得到对象

$single=Single::getInstance('wangjing');

文章来源:https://www.cnblogs.com/wangjingwangjing/p/5236120.html

相关文章

  • pattern设计模式

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • 单例模式

    这几天在看PHP面向对象,设计模式与实现这本书。谈谈对单例模式的理解。 单例模式:在系统中需要一个对象来存储数据,...

  • PHP实现单例模式

  • php实现单例模式

    什么是设计模式:设计模式是指设计某个程序的方式。 今天我们简析一下单例模式 单例模式:一个类只能最多创建出一个对象...

  • 单例模式

    一、实现单例模式 或者 二、透明的单例模式 三、用代理实现单例模式 四、JavaScript中的单例模式 在Jav...

  • 单例模式和GCD单例实现

    1、传统单例模式2、GCD单例模式3、用宏实现GCD单例模式4、用宏实现GCD单例模式,名称随类名变化而变化 单例...

  • kotlin实现单例模式

    1.懒汉式实现单例模式 2.线程安全懒汉式实现单例模式 3.双重校验懒汉式实现单例模式 4.静态内部类方式实现单例模式

网友评论

      本文标题:php实现单例模式

      本文链接:https://www.haomeiwen.com/subject/itdgpqtx.html