首页 > 代码库 > php的单例模式
php的单例模式
据说,单例模式是设计模式中最简单的一种。
不多说,先上代码,然后解说,一共两个文件:
danli.class <?php class Danli { //保存类的实例的静态成员变量 static private $_instance=null; //私有的构造方法 private function __construct(){ echo "这是一个构造方法<br>"; } //用于访问类的实例的公共的静态方法 static public function getInstance(){ if(!(self::$_instance instanceof Danli)){ echo "实例化<br>"; self::$_instance = new self; } return self::$_instance; } //类的其它方法 public function test(){ echo "调用成功<br>"; } }
index.php <?php //加载类文件 require "Danli.php"; //第一次调用类的实例 $first = Danli::getInstance(); $first->test(); //第二次调用类的实例 $second = Danli::getInstance(); $second->test();
输出结果: 实例化 这是一个构造方法 调用成功 调用成功
以上是PHP单例模式的简单实现,通过结果可以看到Danli类只实例化了一次。
接下来说一下单例模式。
简单点儿说,单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源,也方便设置钩子输出日志信息等。
关于单例模式在网上可以收到很多很详细的解说,这里不再复述,咱们还是详细说一下PHP的单例模式的实现。
从上面的代码可以看出来,PHP的单例模式实现要求:
1、一个private的__construct是必须的,单例类不能在其它类中实例化,只能被自身实例化;
2、拥有一个保存类的实例的静态成员变量;
3、一个静态的公共方法用于实例化这个类,并访问这个类的实例;
php的单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。