美文网首页
单例模式

单例模式

作者: 最底层的技术渣 | 来源:发表于2020-01-29 23:01 被阅读0次

概念

单例模式:singleton,是一种类的设计只会最多产生一个对象的设计思想

  • 单例模式的类只能在一次运行中产生一个对象
  • 单例模式为了解决如何只产生一个对象,需要使用以下解决方案,简称三私一公
  • 私有化构造方法:不让在外部产生多个对象
  • 私有化克隆方法:不允许对象被克隆产生新对象
  • 公有化静态方法:运行进入类内部产生对象
  • 私有化静态属性:保存已经产生的对象
栗子
<?php

class Singleton
{
    /**
     * 增加静态属性:私有,不允许外部修改,否则外部修改之后就没有意义了
     * @var null
     */
    private static $object = null;

    /**
     * 禁止在类外部实例化对象
     * Singleton constructor.
     */
    private function __construct()
    {

    }

    /**
     * @return Singleton|null
     */
    public static function getInstance()
    {
        //判断内部属性是否存在对象(is_object函数):最好的判定是存的对象是当前类的 instanceof
        if (!(self::$object instanceof self)) {
            //当前保存的内容不是当前类的对象
            self::$object = new self();
        }
        //返回对象给外部
        return self::$object;
    }

    /**
     * 在Singleton类中增加私有化的__clone()方法
     * 禁止对象的克隆,即在类内部私有化克隆方法
     */
    private function __clone()
    {
    }
}

$obj1 = Singleton::getInstance();
$obj2 = Singleton::getInstance();
var_dump($obj2, $obj1);

相关文章

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式

    单例模式1 单例模式2

  • java的单例模式

    饿汉单例模式 懒汉单例模式

网友评论

      本文标题:单例模式

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