PHP-单例模式

来源:互联网 发布:angular.js介绍 编辑:程序博客网 时间:2024/05/20 05:10

概念

通过单例模式可以保证系统中一个类只有一个实例单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。特点:只能有一个实例;必须自行创建这个实例;必须给其他对象提供这个实例;

应用场景

数据库使用。

实例代码

实现步骤:    1、封锁new操作,protected __construct();私有化构造函数;这样外部无法进行实例化,或者private    2、类内部留一个接口来进行实例化对象,静态方法;        public static function getIns(){ return new self();}    3、预先判断实例,有就进行返回,没有实例就进行实例化;保证一个实例化       if(!self::$ins === null) self::$ins = new self();       return self::$ins;       保证同一个对象。    4、防止被继承,使用final class single{};       构造方法前加final:则方法不能背覆盖       final protected function __construct();       类前加final,则类不能被继承。    5、防止被clone:$s1 = single::getIns();$s2 = clone $s1;       禁止克隆:       final protected function __clone(){};
示例代码
class single{    private static $ins = null;    private final function __construct() {}    private function __clone(){};    public static function getIns(){        if(self::$ins === null) self::$ins = new single();        return self::$ins;    }}
0 0
原创粉丝点击