PHP单例模式

单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费。

单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。

单例模式有以下3个特点:

1.只能有一个实例。

2.必须自行创建这个实例。

3.必须给其他对象提供这一实例。


单例类至少拥有以下三种公共元素:

 1.   必须拥有一个构造函数,并且必须被标记为private。
 2.   拥有一个保存类的实例的静态成员变量。
 3.   拥有一个访问这个实例的公共的静态方法

具体使用方面,我在下面php实例中注释的很清楚:

<?php
    	class Mysql{
    		//该属性用来保存实例
    		private static $conn;
    		//构造函数为private,防止创建对象
    		private function __construct(){
    			$this->conn = mysql_connect('localhost','root','');
    		}
    		//创建一个用来实例化对象的方法
    		public static function getInstance(){
    			if(!(self::$conn instanceof self)){
    				self::$conn = new self;
    			}
    			return self::$conn;
    		}
    		//防止对象被复制
    		public function __clone(){
    			trigger_error('Clone is not allowed !');
    		}
    		
    	}
    	//只能这样取得实例,不能new 和 clone
    	$mysql = Mysql::getInstance();
    ?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值