基于php设计模式中单例模式的应用分析

 更新时间:2013年05月15日 16:54:12   作者:  
本篇文章是对php设计模式中单例模式的应用进行了详细的分析介绍,需要的朋友参考下

单例模式:简单的说,一个对象只负责一个特定的任务。

单例类:
    1.构造函数需要标记为private,单例类不能再其他类中实例化,只能被其自身实例化
    2.拥有一个保存类的实例静态成员变量
    3.拥有一个访问这个实例的公共的静态方法。[常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到此类是否已经被实例化]
    注:需要创建__clone()方法防治对象被复制
作用:
    1.php的应用主要用于数据库,所以一个应用中会存在大量的数据库操作,使用单例模式,则可以避免大量new操作消耗的资源
    2.如果系统中需要一个类来全局控制某些配置信息,那么使用单例模式可以很方便的实现。参照ZF的FrontController部分
    3.在一个页面请求汇总,便于进行调试,因为所有的代码都集中在一个类中,我们可以在类中设置钩子,输出日志,从而避免到处var_dump,echo。

复制代码 代码如下:

<?php
class DanLi{
    //静态成员变量
    private static $_instance;
    //私有的构造方法
    private function __construct(){
    }
    //防止对象被克隆
    public function __clone(){
        trigger_error('Clone is not allow!',E_USER_ERROR);
    }
    public static function getInstance(){
        if(!(self::$_instance instanceof self)){
            self::$_instance = new self;
        }
        return self::$_instance;
    }
    public function test(){
        echo "ok";
    }
}

//错误:$danli = new DanLi(); $danli_clone = clone $danli;
//正确:$danli = DanLi::getInstance(); $danli->test();

?>

相关文章

  • 关于UEditor编辑器远程图片上传失败的解决办法

    关于UEditor编辑器远程图片上传失败的解决办法

    因为单纯喜欢 UEditor 的界面,于是把项目中原先的编辑器进行的替换,但在后续操作中发现一些问题,就是远程图片上传
    2012-08-08
  • 一个比较简单的PHP 分页分组类

    一个比较简单的PHP 分页分组类

    最近写的一个PHP 分页分组类,写完后才看到,网上有太多的了,但是这个比较简单,记到此处,备用,对于学习php的朋友也是一个不错的参考。
    2009-12-12
  • laravel框架使用极光推送消息操作示例

    laravel框架使用极光推送消息操作示例

    这篇文章主要介绍了laravel框架使用极光推送消息操作,结合实例形式详细分析了laravel框架扩展jpush-api-php-client实现极光推送消息具体操作步骤与使用技巧,需要的朋友可以参考下
    2020-02-02
  • PHP safe_mode开启对于PHP系统函数有什么影响

    PHP safe_mode开启对于PHP系统函数有什么影响

    这篇文章主要介绍了PHP safe_mode开启对于PHP系统函数有什么影响,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • thinkPHP3.0框架实现模板保存到数据库的方法

    thinkPHP3.0框架实现模板保存到数据库的方法

    这篇文章主要介绍了thinkPHP3.0框架实现模板保存到数据库的方法,结合实例形式分析了使用thinkPHP3.0框架开发CMS系统过程中将模板保存到数据库的具体实现步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • PHP上传图片到数据库并显示的实例代码

    PHP上传图片到数据库并显示的实例代码

    这篇文章主要介绍了PHP上传图片到数据库并显示的实例代码,有兴趣的朋友们参考下。
    2019-12-12
  • php发送post请求函数分享

    php发送post请求函数分享

    这篇文章主要介绍了一个php发送post请求的函数,开发中经常会用到,需要的朋友可以参考下
    2014-03-03
  • thinkphp5实现微信扫码支付

    thinkphp5实现微信扫码支付

    这篇文章主要为大家详细介绍了thinkphp5实现微信扫码支付,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • ThinkPHP之N方法实例详解

    ThinkPHP之N方法实例详解

    ThinkPHP的N方法属于计数器方法,这篇文章主要介绍了ThinkPHP的N方法,需要的朋友可以参考下
    2014-06-06
  • 强制PHP命令行脚本单进程运行的方法

    强制PHP命令行脚本单进程运行的方法

    本文介绍了一个强制PHP在单进程中执行的函数,多用在php命令行中和一些特殊需求的地方,需要的朋友可以参考下
    2014-04-04

最新评论