一、简介:
使得类的一个对象成为系统的唯一实例,不会重复的去创建一个类
常见的使用单例模式的是:数据库类
二、三个要点:
1、单例模式的类只提供私有的构造函数 : private function __construct()
2、类定义中含有一个该类的静态私有对象: private static $instance=null;
3、提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象: public static function getInstance()
三、简单PHP代码demo:
<?php /** * Singleton pattern with php 单例模式 * User: DongJuntong * Date: 2017/2/9 * Time: 18:21 */ class Singleton { private static $instance=null; public $name=''; private function __construct() { } private function __clone() { } public static function getInstance() { if(empty(self::$instance)) { self::$instance=new Singleton(); } return self::$instance; } }
四、测试代码:
$single1=Singleton::getInstance(); $single1->name='张三'; echo "name值为:{$single1->age}<br/>";// 张三 $single2=Singleton::getInstance(); $single2->name='李四'; echo "name值为:{$single1->age}<br/>";//李四 echo "name值为:{$single2->age}<br/>";//李四
可以看出第二次的name值也变成了‘李四’ 说明single1 和single2 是同一个对象。