首页 > Web开发 > 详细

PHP设计模式-单例模式

时间:2019-03-22 23:16:33      阅读:164      评论:0      收藏:0      [点我收藏+]

单例模式

<?php

namespace DesignPattern\Single;
/**
 * Class Single
 * 单例设计模式:
 * 实现功能: 单例设计模式的类只能有一个对象
 * 实现目的: 为了节约资源避免资源浪费
 * 使用场景: 数据库操作类(假设只需要一个链接)
 * 实现过程(思路):
 *     1. 私有化构造方法,和克隆,在类外不能够创建对象
 *     2. 提供一个静态方法, 获取这个类的实例
 */
class Single
{

    /**
     * 存储类的实例
     * @var $_instance
     */
    private static $_instance = null;

    /**
     * 获取类的实例, 如果实例已经存在,就直接返回,不存在就创建一个
     * @return Single
     */
    public static function instance()
    {
        if (is_null(self::$_instance)) {
            self::$_instance = new self;
        }
        return self::$_instance;
    }

    /**
     * 私有构造方法,外界不能使用new关键字对象
     * Single constructor.
     */
    private function __construct()
    {

    }

    /**
     * 禁止克隆,防止通过 clone 关键字克隆对象
     */
    private function __clone()
    {

    }


    /**
     * 防止对象被序列化
     */
    private function __sleep()
    {

    }

    /**
     * 防止反序列化对象
     */
    private function __wakeup()
    {

    }
}


$object1 = Single::instance();
$object2 = Single::instance();

var_dump($object1 === $object2); // true

PHP设计模式-单例模式

原文:https://www.cnblogs.com/liaohui5/p/10581515.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!