<?php
/**
* 设计模式之单例模式
* $_instance必须声明为静态的私有变量
* 构造函数和析构函数必须声明为私有,防止外部程序new
* 类从而失去单例模式的意义
* getInstance()方法必须设置为公有的,必须调用此方法
* 以返回实例的一个引用
* ::操作符只能访问静态变量和静态函数
* new对象都会消耗内存
* 使用场景:最常用的地方是数据库连接。
* 使用单例模式生成一个对象后,
* 该对象可以被其它众多对象所使用。
*/
class Example
{
//保存例实例在此属性中
private static $_instance;
//构造函数声明为private,防止直接创建对象
public function __construct()
{
//初始的方法
}
//单例方法
public static function getInstance()
{
if(!isset(self::$_instance))
{
$c=__CLASS__;
self::$_instance=new $c;
}
return self::$_instance;
}
function test()
{
echo("test");
}
}
// 这个写法会出错,因为构造方法被声明为private
//$test = new Example;
// 下面将得到Example类的单例对象
$test = Example::getInstance();
$test->test();
?>
PHP设计模式之单例模式demo
最新推荐文章于 2023-04-15 01:05:35 发布