PHP设计模式---单例模式

应用场景

实际项目中像数据库查询,日志输出,全局回调,统一校验等模块。
这些模块功能单一,但需要多次访问,如果能够全局唯一,多次复用会大大提升性能。这也就是单 例存在的必要性(我们希望整个应用只实例化一次)

单例模式的好处:

1:减少频繁创建,节省了cpu。

2:静态对象公用,节省了内存。

3:功能解耦,代码已维护

PHP实现

/**结构:
 * 3私1公
 * 私有化构造方法:防止使用 new 创建多个实列
 * 私有化克隆方法: 防止clone多个实列
 * 私有化静态属性:防止直接访问存储实列的属性
 * //
 class Db
  {
  	    private static $instance = null;
 
	    public static function getInstance()
	    {
	         //检测当前类属性$instance是否已经保存了当前类的实例
	        if (is_null(self::$instance)) {
	            //如果没有,则创建当前类的实例
	            self::$instance = new self();
	        }
	        //如果已经有了当前类实例,就直接返回,不要重复创建类实例
	        return self::$instance;
	    }
	 
	    /**
	     * 防止 new 多个实例
	     * Db   __constructor.
	     */
	    private function __construct()
	    {
	    
	    }
	 
	    /**
	     * 防止clone 多个实例
	     */
	    private function __clone()
	    {
	 
	    }

  }
  //使用
$db = Db::getInstance();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值