为了账号安全,请及时绑定邮箱和手机立即绑定

单例模式只允许有一个全局唯一的对象

单例模式只允许有一个全局唯一的对象  这句话的意思    单例模式是什么意思哎

正在回答

3 回答

只能new 一次就是实例化一次:你每次需要用这各类都要去实例化(也就是去new)这样每次都需要开辟内存空间>>>重复使用这个类时就会占用更多的空间>>>>为了解决内存占用  >>>>就把构造方法给私有化

【  

 private function __construct() {
       echo 'object create';
   }

这样在其他类中无法实例化这个类(那要怎样实例化那)>>>这是就会用到静态公开方法>>>

   public static function getInstance() {
       if (empty(self::$_object)) {
           self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
       }
       return self::$_object;
   }

public static  function getInstance()这个方法能直接被其他类调用  因为这个方法可以调用这个类的内部的所有方法   所以这个方法就是个中介

不懂可以继续追问   要理解单列模式之前一定要把  public(公有),protected(受保护)和private(私有之一)的作用域搞懂

1 回复 有任何疑惑可以回复我~
#1

慕沐4974640 提问者

非常感谢!
2017-09-13 回复 有任何疑惑可以回复我~

其实就是搞个静态变量储存new出来的对象,new的时候在构造方法里判断下如果静态变量里有对象,就是已经实例化过了,就返回这个对象,没有的话就实例化一个新的并保存到那个静态变量中,一般这种单态都是用于像数据库连接这种只需要实例化一个对象

0 回复 有任何疑惑可以回复我~

....

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

单例模式只允许有一个全局唯一的对象

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信