PHP设计模式_单例模式详解编程语言

了解

单例设计模式用于限制特定对象只能被实例化创建一次,有且只有一个此类型的资源。例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。单例模式可以减少类的实例化,避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。

特点

  • 只能有一个实例。
  • 必须自行创建这个实例。
  • 必须给其他对象提供这一实例。

代码

<?php 
//典型的Mysql操作类 
class mysql_db{   
  //1.私有的静态属性 
  private static $dbcon = false;   
  //2.私有的构造方法 
  private function __construct(){ 
    $dbconn = @mysql_connect("localhost","root",""); 
    mysql_select_db("test",$dbconn) or die("mysql_connect error"); 
    mysql_query("SET NAMES utf8"); 
  }   
  //3.私有的克隆方法 
  private function __clone() { 
   
  }   
  //1.公有的静态方法 
  public static function getIntance() {  
    if(self::$dbcon==false){     
      self::$dbcon=new self; 
    }  
    return self::$dbcon; 
  }  
} 
$db = mysql_db::getIntance();

 补充说明

  • $_instance必须声明为静态的私有变量
  • 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义
  • getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用
  • ::操作符只能访问静态变量和静态函数
  • new对象都会消耗内存
  • 使用场景:最常用的地方是数据库连接。
  • 使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。
  • 私有的__clone()方法防止克隆对象

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/17153.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论