单例和多例 ——浅解

  一、什么是单例、多例?

              所谓单例就是指所有请求都用一个对象来处理;

                        多例就是指每个请求用一个新的对象来处理;

              可以测试得到单例模式下面,new  不同对象的地址值是一模一样的,保存在一个地方;

                         多例模式下面,new 不同对象的地址值都是不一样的;

二、1.单例模式和多例模式都是对象模式。

        2.单例的对象在整个系统中只有一份,多例模式可以有多个实例。

        3.它们都不对外提供构造方法,即构造方法私有。

三、单例模式:第一种:懒汉式(线程不安全,加上synchronized后线程安

           对象延迟加载,效率高,只有在使用的时候才实例化对象,但若设计不当线程会不         安全,代码相对于饿汉式复杂,第一次加载类对象的时候反应不快。

                        第二种:饿汉式(线程安全)

           对象预先加载,线程是安全的,在类创建好的同时对象生成,调用获得对象实例的方法反应速度快,代码简练。

         多例模式:是为了防止并发问题;

             即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;

用法总结:用单例和多例的标准只有一个:

      当对象含有可改变的状态时(在实际应用中该状态会发生改变)就用多例 ,否则就用到单例。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值