php实现单例模式

2019-03-12  本文已影响0人  进击的PHPer

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读