单例模式(singleton)顾名思义,就是只有一个实例。
单例模式的要点有三个;
- 只能有一个实例;
- 它必须自行创建这个实例;
- 它必须自行向整个系统提供这个实例
- class Singleton
- {
- // 静态变量用以存放当前类的实例
- static $_instance;
- // 构造函数和克隆函数需要藏起来,避免产生多个实例
- private function __construct(){}
- private function __clone(){}
- public static function getInstance()
- {
- // 如果静态变量不是当前类的实例,则实例化当前类,并存放到静态变量中
- if(!(self::$_instance instanceof self))
- {
- self::$_instance = new self();
- }
- return self::$_instance;
- }
- public function display($param)
- {
- echo $param;
- }
- }
- Singleton::getInstance()->display("test singleton");
输出结果:
- test singleton
因为php是单线程的,所以单例模式没有java那样的多线程的问题。通常数据库类或session类都做成单例的。
本文转自 ustb80 51CTO博客,原文链接:http://blog.51cto.com/ustb80/1033210,如需转载请自行联系原作者