单例模式

来源:互联网 发布:word中怎么输入矩阵 编辑:程序博客网 时间:2024/06/14 02:59

    是软件工程中23种设计模式最常见的一种,此模式要求单例对象的类必须保证只能创建一个实例,其中会提供一个全局的访问接口。

     使用场景:许多时候,整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。1、比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这种方式就简化了在复杂环境下的配置管理。2、再比如数据库连接池的设计一般也采用单例模式,银行系统中对数据库的访往往是通过一个对象进行的,不会有多余对象有权限访问数据库,这种方式就保证了数据库的安全性。3、还比如在BBS、SNS等网站中,一般会有“当前在线人数”这项需求,按照面向对象的设计思想,就可以把它设计为“在线计数器”这样一个单例类,因为只需要一个计数器对象就可以供网站任何用到计数器的地方使用了,有用户登录就把类中的static计数属性加一,有用户退出就把类中的static计数属性减一。

1、饿汉式单例

    该单例类非常饿,迫切需要吃东西,所以不会判断是否已有对象,在类加载的时候就立即创建对象。从用户体验的角度来说,我们应该首选饿汉模式,因为用户愿意等待某个程序花较长的时间初始化,却不喜欢在程序运行时等待太久,给人一种反应迟钝的感觉。

2、懒汉式单例

    该单例类非常懒,只有在自身需要对象的时候,才判断是否已有对象,如果没有就创建一个对象,然后返回此对象,如果已有对象就不再创建,直接返回已有对象。

 

0 0
原创粉丝点击