二、单元素模式
单元素 模式(Singleton Pattern)指的是在应用程序的范围内只对指定的类创建一个实例。通常该模式中包含一个私有构造方法,用来确保用户无法通过创建对象或者克隆的方式对 其进行实例化。除此以外,该模式中还包含一个私有静态属性与公有静态方法。公有静态方法负责对其本身实例化,然后将这个对象存储在私有静态属性中,用来确 保只有一个实例被创建。
1、类图
这里,私有构造方法__contruct()用来确保Singleton类无法通过创建对象或克隆的方式对其进行实例化。只能通过公有静态方法getInstance()生成一个该类的实例并且存储在私有静态属性$instance中。
2、代码
<?php
class Singleton{
private static $instance = null;
private static $msg;
//私有化构造方法
private function __construct(){
self::$msg++;
}
//公有静态方法getInstance()
public static function getInstance() {
if (self::$instance==null) { //确保只有一个实例被创建
self::$instance = new Singleton();
}
return self::$instance;
}
//公有成员方法printString()
public function printString() {
echo "测试".self::$msg;
}
}
$class = Singleton::getInstance();
$class->printString();
echo "<br />";
$class2 = Singleton::getInstance();
$class2->printString();
http://www.linuxfly.org/post/614/
转载于:https://blog.51cto.com/mobai/1558114