2019-12-23  本文已影响0人  呦丶耍脾气

1. 单例模式

<?php
/**
 * 四个要点:
 * 1.需要一个保存类的唯一实例的静态成员变量;
 * 2.构造函数和克隆函数必须声明为私有的防止外部程序new类而失去单例模式的意义
 * 3.必须提供一个访问这个实例的公共的静态方法
 * 4.在定义类的时候用final关键字禁止继承,防止重写父类方法。
 */
final class danli
{
  private static $self = null;#静态变量设置为私有,防止被修改
  #构造函数私有防止被外部程序new类
  private function  __construct()
  {

  }
  #克隆魔术方法设置为私有防止克隆对象
  private function __clone()
  {

  }
  #声明唯一的静态方法,提供外部获取实例
  static function getSelf()
  {
    var_dump(self::$self instanceof self);
    if(!(self::$self instanceof self)){
      self::$self = new self();
    }
    return self::$self;
  }
}
$self = danli::getSelf();
danli::getSelf();
var_dump($self);

数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因此用单例模式来维护,就可以大大降低这种损耗。

上一篇下一篇

猜你喜欢

热点阅读