8
9
Clicks: 2440 Date: 2014-04-26 16:08:13 Power By 李轩Lane
单例模式,顾名思义,单个的实例,就是对某个对象,只new一次。单例模式是设计模式常见的一种,用来创建封装好的类的唯一一个实例,这样一来,可以严格控制客户怎么样访问它以及何时访问它,对唯一实例的受控访问。
单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点。
单例模式如何防止一个类被多次new呢?首先,每个类都有一个构造函数,即使没有显式的声明,也是以public存在的,将构造函数设为private。其次,让该类保存实例化后的对象,并提供一个对外的接口。
示例场景:mysql中user表。以PHP为代码环境,来模拟设计模式中的单例模式。
class UserMysqlModel{
public function get(){
echo '获取user表的数据
';
}
public function set(){
echo '写入user表的数据
';
}
public function edit(){
echo '修改user表的数据
';
}
public function del(){
echo '删除user表的数据
';
}
}
class UserBusiness{
private static $userMysqlModelObj = '';
private function __construct(){
}
public static function getInstance(){
if(empty(self::$userMysqlModelObj)){
self::$userMysqlModelObj = new UserMysqlModel();
}
return self::$userMysqlModelObj;
}
}
//客户端/接口
$userBusinessObj = UserBusiness::getInstance()->get();
$userBusinessObj = UserBusiness::getInstance()->set();
$userBusinessObj = UserBusiness::getInstance()->edit();
$userBusinessObj = UserBusiness::getInstance()->del();