黑马程序员技术交流社区
标题:
跟大家分享一下“懒汉式”和“饿汉式”的代码
[打印本页]
作者:
不安分的程序猿
时间:
2016-5-18 21:56
标题:
跟大家分享一下“懒汉式”和“饿汉式”的代码
//饿汉式
//单例模式 一个类只有一个对象
//就像音乐播放器或者迅雷
//无论打开多少次 只有一个主程序(一个实例)(梦幻就不是)
public class DemoSingleTest01 {
public static void main(String[] args) {
//不能直接new
//无论调用多少都返回同一个静态变量
Single01 s1 = Single01.getInstance();
Single01 s2 = Single01.getInstance();
System.out.println(s1==s2);
}
}
class Single01{
//构造方法私有化
// 外部类不能直接调用
private Single01(){
}
//声明一个静态变量 是当前对象 并且也是被private修饰
//private修饰目的是为了避免恶意置空
private static Single01 instance = new Single01();
//提供公开的访问方式
public static Single01 getInstance() {
return instance;
}
}
复制代码
饿汉式就是上来就new对象
懒汉式是能不new就不new
如果记不住的话
可以理解成 两个单身的人 一个很懒 找对象都懒得找
另一个人反而“饿”的不行了 离不开对象。。
下面是懒汉式的代码
//懒汉式
public class DemoSingleTest02 {
public static void main(String[] args) {
Single02 s1= Single02.getInstance();
Single02 s2= Single02.getInstance();
System.out.println(s1==s2);
}
}
class Single02{
private Single02(){
}
private static Single02 instance;
public static Single02 getInstance() {
if(instance==null){
instance = new Single02();
}
return instance;
}
}
复制代码
作者:
不安分的程序猿
时间:
2016-5-18 21:58
忘了说了 以上两者都是单例设计模式
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2