单态设计模式,也可以叫做单例设计模式,
就是一个类只能让它生成一个对象,避免重复的NEW,影响运行效率(每NEW一个对象都会在内存中开辟一块空间)
示例代码
<?php
/*
* 单态设计模式
*/
class DB{
//声明一个私有的静态属性
private static $obj = null;
//私有化构造方法,只能让他在内部声明
private function __construct(){
echo "连接数据库的过程<br>";
}
//通过此静态方法,才能生成本类的对象
public static function set_obj(){
if(is_null(self::$obj)){
self::$obj = new self();
}
return self::$obj;
}
//执行的方法
public function query(){
echo "my query function <br>";
}
//析构方法
public function __destruct(){
echo "#############<br>";
}
}
$p = DB::set_obj();
$p2 = DB::set_obj();
$p3 = DB::set_obj();
$p4 = DB::set_obj();
$p5 = DB::set_obj();
$p->query();
$p2->query();
$p3->query();
$p4->query();
$p5->query();
?>
执行结果
连接数据库的过程
my query function
my query function
my query function
my query function
my query function
#############
构造方法和析构方法执行了一次, 说明只生成了一个对象