单例模式学习笔记

单例模式确保一个类只有一个实例,而且自行实例化,向整个系统提供这个实例。它的三个特点:

    A.只能有一个实例;

    B.它必须自行创建这个实例;

    C.它必须自行向整个系统提供这个实例。

单例模式分为饿汉单例模式和懒汉单例模式,它们的类图如下:

类图结构

饿汉模式类图

 

      类图结构

懒汉模式类图

饿汉单例类与懒汉单例类的区别:

    A.饿汉单例类在自己被加载时就将自己实例化,而懒汉单例类是在被调用时再实例化。

    B.饿汉单例类对资源的利用率较懒汉单例类要低。

    C.饿汉单例类在速度和响应时间较懒汉单例类要快。

使用单例模式的条件:在一个系统要求一个类只有一个实例是才应该用单例模式。

 

注意事项:

    1.在分散式系统中,单例类不一定只有一个实例,所以在分散式系统中尽量不要使用有状态单例模式;

    2.工厂模式与建造者模式可常与单例模式配合使用;

    3.不完全单例类不推荐使用;

    4.单例类与静态全局变量的优势在于:可以有较复杂的内部逻辑,可以有继承关系等;

    5.属性管理器经常可以用单例模式来实现。

          

    参考文献:《Java与模式》,阎宏,第十五章.

<!--EndFragment-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值