本文主要和大家分享PHP设计模式之单例模式demo,希望能帮助大家更好的学习PHP单例模式。<?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/**
* 设计模式之单例模式
* $_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();?> |