【原】PHP设计模式-单例模式

/ 0评 / 0

简介:单例模式,是一种常见的软件设计模式。在它的核心结构中包含一个被称为特殊的单例。通过单例模式可以保证系统中一个类只有一个实例,即一个类只有一个对象实例。单例模式通常有以下三个要点:

  1.  一个类只有一个对象
  2. 必须是自动创建这个类的对象
  3. 整个系统只有这一个对象

从实现角度来讲,需要保证一下三点:

  1. 单例模式的类只提供私有的构造函数
  2. 类定义中含有一个该类的静态私有属性
  3. 该类提供了一个静态的公有函数用于创建或者获取它本身的静态私有对象

代码如下:

class instance
{
    //私有的静态属性用以保存对象
    static private $instance;
        //静态方法
    public static function getInstance(){
        if (!isset(self::$instance)){
            self::$instance = new self;
        }
        return self::$instance;
    }
    //私有的构造方法
    private function __construct()
    {
    }
    /**
     * 取两个数之间的小的数
     * @param $a
     * @param $b
     * @return mixed
     */
    public function getMax($a,$b){
        if ($a>=$b){
            return $a;
        }else{
            return $b;
        }
    }
    /**
     * 取两个数中的小的数
     * @param $a
     * @param $b
     * @return mixed
     */
    public function getMin($a,$b){
        if ($a<=$b){
            return $a;
        }else{
            return $b;
        }
    }
}

以上示例代码创建了一个类,里面有getMax和getMin两个方法,当我需要调用这两个方法的时候只需要像如下调用即可。

$result = instance::getInstance()->getMax(1, 2);
$result = instance::getInstance()->getMin(1, 2);

这样在一次执行过程中,使用这两个方法就只会被实例化一次,在第二次调用的时候就不会重复实例化。以上是关于PHP设计模式-工厂模式的介绍,如有转载请注明出处。
及时了解关于PHP和golang的一些技术文章请关注微信公众号:文艺的爱码士