单例模式 Singleton
Posted 罗夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式 Singleton相关的知识,希望对你有一定的参考价值。
保证一个类仅有一个实例,并提供一个访问它的全局访问点.
应用场景:
A.一个无状态的类使用单例,可以节省内存
B.全局或配置类(其实这个也是无状态的)
C.脚本或程序从运行开始到结束,仅需要一个实例来保证数据或条件的一致性(数据库连接,如user类的积分数据),注意这是在单线程模式下,多线程模式下是要处理并发
UML:
class A{ private static $instance = null; private function __contruct(){} public static getInstance() { if (is_null(self::$instance)) { self::$instance = new static(); //此处注意和new self的区别 } return self::$instance; } } 调用: $a = A::getInstance(); $a->getInstance();
以上是关于单例模式 Singleton的主要内容,如果未能解决你的问题,请参考以下文章