单例模式
- 私有化构造方法,禁止外部实例化对象
- 声明一个静态属性,用于保存类的实例
- 声明一个静态方法,用声明的静态属性实例化对象
单例模式的最终目的
- 将对象实例化后保存到静态属性中,接下来的每次调用该对象时都是调用该静态属性
- 而不是重新实例化该对象
- 要知道,每次实例化一个对象时都是需要消耗一定的内存的
演示demo
class Singleton
{
public static $instance = null;
private function __construct()
{}
public static function getInstance()
{
if (!self::$instance){
self::$instance = new self();
}
return self::$instance;
}
public function getData()
{
return '获取到了';
}
}
使用方法
dump(Singleton::getInstance()->getData());
输出结果