PHP7经典单例模式封装

单例模式

单例模式(Singleton Pattern)是 程序设计中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

注意:

1、单例类只能有一个实例。

2、单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。


<?php
trait Singletons{
 
    private static $instance;
    public static  function getInstance(){
        if(!isset(self::$instance)){
            self::$instance = new static();//这里不能new self(),self和static区别
        }
        return self::$instance;
    }
 
}
 
class BaseSingle{
    //trait用法
    use Singletons;
    private $redis;
 
    public function __construct()
    {
        //封装redis实例作为测试
        $this->redis = new \Redis();
        $this->redis->pconnect("127.0.0.1",6379);
    }
 
    /**
     * 内部访问方法
     */
    public function get(){
        echo $this->redis;
        echo "111";
    }
 
}
//调用测试
BaseSingle::getInstance()->get();
Comments: 8

「人生在世,留句话给我吧」

提交评论