单例模式按字面来看就是指某一个类只存在一个实例,这一点其实是与静态方法是相同的,只存在一个实例的好处是当我们需要使用某个类时只需要实例化一次,不需要每次都去new,极大的降低了资源的耗费,比如说数据库的连接类。
一个类只有一个对象实例含义
作为对象知否知否所有人结局的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。
那么单例模式与静态那一天还未到方法有什么区别呢?
个人档案整理工作总结观点,如果不存在比较复杂的事务管理,用singleton会比较好,原因有三:
1、单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);2、单例可以被延迟初始化,静态类一般在第一次加载是初始化;3、单例模式在使用中比静态方法更灵活;虽然这样说,但到底该选用单例还用而且造句是静态,我们还需要视实际情况而定,在设计模式中我们应该做怎么治疗黑变病到的是:减少代码,增加稳定,方便理解,提升性能,减少开销。
扯远了,下面我们说回php中单例模式的使用。
单例类至少拥有以下三种公共元素:
1、必须拥有一个构造函数,并且必须被标记为private。2、拥有一个保存类的实例的静态成员变量。3、拥有一个访问这个实例的公共的静态方法。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。
单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。
单例模式有以下3个特点:
1.只能有一个实例。
2.必须自行创建这个实例。
3.必须给其他对象提供这一实例。
那么为什么要使用php单例模式?
php一个主要应用场合就是应用程序与数据库打交道的场景,在一个应用中会存在大量的数据库操作,针对数据库句柄连接数据库的行为,使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。
具体使用例子:
<?php/** * by www.jb51.net */class mysql{ //该属性用来保存实例 private static $instance; private $conn; //构造函数为private,防止创建对象 private function __construct(){ $this->conn = mysql_connect('localhost','root','123456'); //... } //创建一个用来实例化对象的方法 public static function getinstance(){ if(!(lf::$instance instanceof lf)){ lf::$instance = new lf; } return lf::$instance; } //防止对象被复制 public function __clone(){ trigger_error('clone is not allowed !'); } //... public function query(){ //do something }}//使用单例调用类中的方法,不能new 和 clonemysql::getinstance()->query();?>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对www.887551.com的支持。如果你想了解更多相关内容请查看下面相关链接
本文发布于:2023-04-07 11:42:52,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/472e94191d781d6cdb124294d8b364fa.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP中单例模式的使用场景与使用方法讲解.doc
本文 PDF 下载地址:PHP中单例模式的使用场景与使用方法讲解.pdf
留言与评论(共有 0 条评论) |