PHP 单例模式

单例模式主要用于解决一个全局使用的类频繁地创建与销毁的问题,可以节省系统资源。特征是将构造函数设置为私有,主要用于数据库连接、系统产生唯一序列号

<?php


namespace DesignModel;


/**
 * 单例模式
 * Class SingletonClass
 * @package DesignModel
 */
final class SingletonClass
{
    /**
     * @var SingletonClass
     */
    private static $instance;

    /**
     * 不能外部实例化,只能通过 SingletonClass::getInstance() 实现
     * SingletonClass constructor.
     */
    private function __construct()
    {
    }

    /**
     * 通过懒加载获得实例
     * @return SingletonClass
     */
    public static function getInstance(): SingletonClass
    {
        if (null === static::$instance) {
            static::$instance = new static();
        }

        return static::$instance;
    }

    /**
     * 防止实例被克隆
     */
    private function __clone()
    {
    }

    /**
     * 防止反序列化
     */
    private function __wakeup()
    {
    }
}
posted @ 2019-07-10 09:22  itabel  阅读(223)  评论(0编辑  收藏  举报