您现在的位置是:网站首页>文章内容文章内容

设计模式--单例模式

李鹏2023-02-14PHP1039人已围观

单例模式(Singleton Pattern)属于创建类型的一种常用的软件设计模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。

优点:

1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。

使用场景:

1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。 3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。

单例模式代码示例:

<?php 

class Singleton
{
    private static $instance;

    private function __construct(){}

    public static function getInstance()
    {
        if (static::$instance == null) 
        {
            static::$instance = new Singleton();
        }
        return static::$instance;
    }
}


//客户端代码
$s1 = Singleton::getInstance();
$s2 = Singleton::getInstance();

if ($s1 == $s2) 
{
    echo "same class";
}
0

文章评论

我的名片

姓名:李鹏

职业:PHP工程师

现居:广东-深圳

网址:https://www.lipeng93.cn