• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php实例化new和getinstance

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般在单例模式下使用.getInstance()创建对象;但并不是所有有私有构造方法,对外通过getInstance方法提供 实例的情况就是单例模式。

注:单例模式:一个类有且只有一个实例。 1,一个私有的构造器 2,一个私有的该类类型的变量 3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量

eg: public class Singleton{     private Singleton(){}    //private 只能在自己内部供自己去访问     private static Singleton instance=new Singleton();//在自己内部定义自己的一个实例     public static Singleton getInstance(){        

//此静态方法供外部直接访问 return instance;     } }

判断Singelton一个类是否是单例模式:

class Test{     public static void main(String args[]){ Singleton s1=Singleton.getInstance(); Singleton s2=Singleton.getInstance(); if(s1==s2) System.out.println("此类是单例模式"); else System.out.println("此类不是单例模式");     } }

GetInstance与new区别: new的使用:如Object object = new Object(),这时候,就必须要知道有第二个public的Object构造方法的 存在。

GetInstance的使用:在主函数开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它 的引用,即内存中有一块区域专门用来存放静态方法和变量,可以直接使用,调用多次返回同一个对象。

(1)对象使用之前通过getinstance得到,而不需要自己定义,用完之后不需要delete; (2)new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的 引用给你使用,这在效能上优于new; (3) new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance() 通常是创建static静态实例方法的。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php中include()和require()的区别发布时间:2022-07-10
下一篇:
PHP二位数组按照下标排序发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap