php 设计模式之单类模式
2016-06-13 本文已影响36人
0d601f651140
- 单例模式:一个类只能产生一个对象,如果希望在系统中某个类(比如链接数据库的类)的对象只能存在一个,就选用单类模式。
- 单类模式的特点:私有化的构造方法;私有化静态属性;//静态方法产生对象
<?php
class Singleton
{
//私有化静态属性
private static $_instance = null;
//私有化的构造方法
private function __construct()
{
}
//静态方法产生对象
public static function getInstance()
{
if (self::$_instance === null) {
self::$_instance = new self();
}
return self::$_instance;
}
}
//测试
$obj1 = Singleton::getInstance();
$obj2 = Singleton::getInstance();
var_dump($obj1);
var_dump($obj2);
?>
测试结果.jpg
- 测试结果: #1是类id,上图打印obj1 和 obj2 的类id是结果一样,表示只实类化了一个类。
- 上面的两幅图尝试用new的方法实类化一个类,就会报错,因为是私有化的构造函数。