美文网首页
PHP设计模式(一)

PHP设计模式(一)

作者: zyn_10 | 来源:发表于2019-02-27 13:53 被阅读0次

单例模式

  1. 单例模式的目的是在应用程序调用的时候,只能获取一个对象实例,避免每次都new一个实例,减少资源消耗。常见于数据库链接。但是单例模式是一个公认的反面模式,为了获取更好的可测试性和可维护性,可以使用 依赖注入
  2. 代码
<?php 
namespace DesignPatterns\Creational\Singleton;

final class Singleton
{
    /**
     * 单例的属性要是静态属性
     *
     */
    private static $instance;

    /**
     * 通过懒加载获得实例(在第一次使用的时候创建)
     */
    public static function getInstance(): Singleton
    {
        if (null === static::$instance) {
            static::$instance = new static();
        }

        return static::$instance;
    }

    /**
     * 不允许从外部调用以防止创建多个实例
     * 要是用单例,必须使用 Singleton::getInstance() 方法获取实例
     */
    private function __construct()
    {
    }

    /**
     * 防止实例被克隆(这回会创建实例的副本)
     */
    private function __clone()
    {
    }

    /**
     * 防止反序列化(这将创建它的副本)
     */
    private function __wakeup()
    {
    }
}

相关文章

网友评论

      本文标题:PHP设计模式(一)

      本文链接:https://www.haomeiwen.com/subject/hpxayqtx.html