PHP单例模式

来源:互联网 发布:个人自动发卡平台源码 编辑:程序博客网 时间:2024/06/15 21:38

单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去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();    ?>



0 0
原创粉丝点击