单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的。
所有的单例模式至少拥有以下三种公共元素:
1. 它们必须拥有一个构造函数,并且必须被标记为private
2. 它们拥有一个保存类的实例的静态成员变量
3. 它们拥有一个访问这个实例的公共的静态方法
三私一公:
公有化静态方法作为提供对象的接口,
私有属性用于存放唯一一个单例对象。
私有化构造方法,
私有化克隆方法保证只存在一个单例。
代码示例
<?php class Singleton{ //存放实例 private static $_instance = null; //私有化构造方法、 private function __construct(){ echo "单例模式的实例被构造了"; } //私有化克隆方法 private function __clone(){ } //公有化获取实例方法 public static function getInstance(){ if (!(self::$_instance instanceof Singleton)){ self::$_instance = new Singleton(); } return self::$_instance; } } $singleton=Singleton::getInstance(); ?>