设计模式(知识点)

1.在java中实现单例模式,需要有构造器,一个静态方法和一个静态变量。

2.如果你的程序有多个类加载器,又同时使用了单例模式,请小心,有一个解决办法:自行指定类加载器,并指定同一个类加载器。

3.对象的创建是现实的,如果不创建任何对象,就无法创建任何java程序。然而,利用这个现实的知识,可将这些创建对象的代码用栅栏围起来,就像你把所有的羊毛堆在眼前一样,一旦围起来后,就可以保护这些创建对象的代码。如果让创建对象的代码到处乱跑,那就无法收集到“羊毛”。

4.抽象工厂:当你需要创建产品家族和想让制造的相关产品集合起来时,可以用抽象工厂。

5.工厂方法:可以把你的客户代码从需要实例化的具体类中解耦。或者如果你目前还不知道将来需要实例化哪些具体类时,也可以用。使用方式很简单,只要把我继承成子类,并实现工厂方法就可以了。




谣传垃圾收集器会吃掉单例,这过分夸大了:

在java1.2之前,垃圾收集器有个bug,会造成当单例在没有全局的引用时被当作垃圾清除。也就是说,如果一个单例只有在本单例类引用它本身,那么该单例就会被当作垃圾清除。这造成让人困惑的bug:因为在单例被清除之后,下次调用getInstance()会产生一个“全新的”单例。对很多程序来说,这会造成让人困惑的行为,因为对象的实例变量值不见了,一切回到最原始的设置(例如:网络连接被重新设置)。

java1.2以后,这个bug已经被修正了,也不再需要一个全局的引用来保护单例,如果出于某些原因你还在用旧版的java,要特别注意这个问题。如果你使用的java1.2以后的版本,就高枕无忧了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值