黑马程序员技术交流社区
标题:
单例设计模式
[打印本页]
作者:
fever_ai_my
时间:
2015-7-15 14:45
标题:
单例设计模式
饿汉式和懒汉式 不懂什么意思
作者:
以梦为码
时间:
2015-7-15 15:48
保证Single类的对象,在内存中是唯一的
实现一个类的单例设计模式三步
1. 私有修饰构造方法
2. 自己类成员位置,创建自己类对象
3. 提供公共方法,访问变量
写法是饿汉式,懒汉式是对象的延迟加载
作者:
晓月残魂
时间:
2015-7-15 19:08
本帖最后由 晓月残魂 于 2015-7-15 19:10 编辑
在某些情况下,我们只希望在程序的某个阶段某个类只有一个对象,这个时候就可以考虑单例模式。比如,这个类是关于软件的配置信息的设定。
1)构造函数私有化,从而不允许外部直接创建其对象
2)由于静态成员是随着类加载时而生成的,所以设计成静态成员
3)静态共有函数是通过类名访问的
4)饿汉式:在类加载时,就生成本类的对象
5)懒汉式:在类加载时,不直接生成本类对象,而只是产生一个本类的引用,在共有静态函数被调用时,才生成本类对象(这种现象称为 延迟加载)。另:懒汉式在多线程中,可能产生多个对象,从而打破了“单例”模式,所以要同步处理
作者:
umbriel
时间:
2015-7-15 21:26
两个区别就是饿汉式在加载类时就生成了实例,而懒汉式在调用getInstance时才会生成实例,懒汉式会节约资源点,但会带来安全性问题,最好加上同步
作者:
鲤鱼仙
时间:
2015-7-15 21:48
饿汉式 就是直接在成员变量处new了 表示我很饿 我就是直接吃
懒汉式 做了判断~~!比喻懒
作者:
孟卫严
时间:
2015-7-15 21:54
饿汉式先初始化,懒汉式后初始化
作者:
fever_ai_my
时间:
2015-7-15 22:06
谢谢各位!!!
作者:
ljd19930325
时间:
2015-7-15 22:11
单例:内存中只能存在一个该类的对象
饿汉式:对象的初始化过程在类加载的时候就已经完成
懒汉式:调用方法的时候再创建对象,需要注意线程安全问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2