PHP单例模式问题

PHP单例模式问题,第1张

if(self::$ins){

            return self::$ins;

        }else{

            self::$ins=new mysql();

            return self::$ins;

        }

这句意思是如果是自身的一个实例就返回,不是就创建一个自身,所以叫单例模式,只有一个实例new mysql()实际上也可以写作new self()

单例不只是PHP中有,是面向对象类语言都有的概念。

你说的是做用,是从语言层面上。只有一个实例。

我觉得面试官要问的是实际使用的含义,对于整个程序设计而言的好处。

我本身也不是什么高手,觉得我说的不对轻喷。

我也用过PHP的TP框架,但是用的很浅,没有体会到有什么特别的。

我说说java的spring框架,它的bean实例化是单例的,struts2也支持选择是否单例。

它能节约内存开销,这是最明显的,一个工具类,或者一个服务类,单例下,一个实例足够,并不需要创建N此,无故的浪费掉内存。

从设计上而言,一个只需要实例化一次就足够的类,设计为单例,这样可以做到从设计上而言更清晰

   //静态变量保存全局实例

   private static $_instance = null;

   //私有构造函数,防止外界实例化对象

   private function __construct() {

   }

   //私有克隆函数,防止外届克隆对象

   private function __clone() {

   }

   //静态方法,单例统一访问入口

   static public function getInstance() {

       if (is_null ( self::$_instance ) || isset ( self::$_instance )) {

           self::$_instance = new self ();

       }

       return self::$_instance;

   }

把上面代码copy到php类里面就可以了

以上就是关于PHP单例模式问题全部的内容,包括:PHP单例模式问题、php的单例模式有什么具体好处具体在哪里实现面试的时候让人问到..求解、怎么用php实现单例模式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10201684.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存