设计模式简析(单例模式)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式简析(单例模式)相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

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

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

<?php
    //单例模式:一个类只能创建一个对象
    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)
                {
                    //判断对象是否存在,如果存在则直接返回原来的对象,否则创建
                }else{
                //创造一个对象
                self::$single=new Single($name);
                //返回对象
                return self::$single;
                }
            }
    }
    //得到对象
    $single=Single::getInstance(‘wangjing‘);

 

以上是关于设计模式简析(单例模式)的主要内容,如果未能解决你的问题,请参考以下文章

Java模式设计之单例模式(二)

单例模式单例模式精讲(上)

单例模式(单例设计模式)详解

单例模式(饿汉式单例模式与懒汉式单例模式)

设计模式之单例模式

什么是单例设计模式