找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 271|回复: 0
打印 上一主题 下一主题

PHP单例模式详解及实例代码

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:29:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            PHP单例模式详解
单例模式的概念
单例模式是指整个应用中某个类只有一个对象实例的设计模式。具体来说,作为对象的创建方式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局的提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。
单例模式的特点
单例模式的主要特点是“三私一公”:
需要一个保存类的唯一实例的私有静态成员变量
构造函数必须声明为私有的,防止外部程序new一个对象从而失去单例的意义
克隆函数必须声明为私有的,防止对象被克隆
必须提供一个访问这个实例的公共静态方法(通常命名为getInstance),从而返回唯一实例的一个引用。
使用单例模式的原因及场景
在PHP的大多数应用中都会存在大量的数据库操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的系统资源和内存资源,而且每次打开和关闭数据库都是对数据库的一种极大考验和浪费。所以单例模式经常用在数据库操作类中。
同样,如果系统中需要有一个类来全局控制某些配置信息,那使用单例模式可以很方便的实现。
PHP单例模式实现
下面是一个PHP单例模式实现数据库操作类的框架
_db=mysql_connect();
}
private function __clone(){
//实现
}
//访问实例的公共静态方法
public static function getInstance(){
if(!(self:_instance instanceof self)){
self:_instance=new self();
}
//或者
if(self:_instance===null){
self:_instance=new Db();
}
return self:_instance;
}
public function fetchAll(){
//实现
}
public function fetchRow(){
//实现
}
}
//类外部获取实例的引用
$db=Db::getInstance();
?>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
            
            
您可能感兴趣的文章:
  • php单态设计模式(单例模式)实例
  • 浅析php单例模式
  • PHP单例模式详细介绍
  • PHP基于单例模式实现的mysql类
  • PHP基于单例模式实现的数据库操作基类
  • php面向对象值单例模式
  • PHP单例模式是什么 php实现单例模式的方法
  • php单例模式的简单实现方法
  • php设计模式之单例模式代码
  • PHP基于单例模式编写PDO类的方法
  • PHP设计模式之工厂模式与单例模式
  • php基于单例模式封装mysql类完整实例
  • php  单例模式详细介绍及实现源码
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端