黑马程序员技术交流社区
标题:
单例设计模式(总结)
[打印本页]
作者:
黄蒙
时间:
2015-8-12 20:51
标题:
单例设计模式(总结)
/*
* 单例设计模式
* 懒汉式(延迟加载):1.定义1个私有的静态本类对象为空
* 2.私有化构造函数,这里可以自行设计
* 3.给出一个公有的静态方法可以获取本类对象,判断条件为本类对象为空
* (这里因为不能直接建立本类对象,只能通过类调用静态函数来得到本类对象)
*
* 饿汉式:1.定义1个私有静态的类对象
* 2.私有化构造函数
* 3.给出一个公共的静态方法可以返回本类对象,即第一步的本类对象;
*
* ???貌似懒汉式可以执行构造函数而饿汉式不能??
*
* @黄蒙
* */
//懒汉式
class a_SingleDesign{
private static a_SingleDesign s=null;
private a_SingleDesign()
{
}
public static a_SingleDesign get_aSingle()
{
//加入双重判断锁保证了安全和效率
if(s==null)
{
synchronized(a_SingleDesign.class)
{
if(s==null)
{
s=new a_SingleDesign();
}
}
}
return s;
}
//-----------------以上为设计结果-----------------------//
public void get_aResult()
{
System.out.println("懒汉式单例设计成功");
}
}
//饿汉式
class b_SingleDesign{
private static b_SingleDesign s=new b_SingleDesign();
private b_SingleDesign()
{
}
public static b_SingleDesign get_aSingle()
{
return s;
}
//-----------------以上为设计结果-----------------------//
public void get_aResult()
{
System.out.println("饿汉式单例设计成功");
}
}
public class SingleDesign {
public static void main(String[] args) {
a_SingleDesign a1=a_SingleDesign.get_aSingle();
a1.get_aResult();
a_SingleDesign a2=a_SingleDesign.get_aSingle();
a2.get_aResult();
b_SingleDesign b1=b_SingleDesign.get_aSingle();
b1.get_aResult();
b_SingleDesign b2=b_SingleDesign.get_aSingle();
b2.get_aResult();
}
}
作者:
熊猫超仁
时间:
2015-8-12 20:59
这个貌似是面向对象里面的知识点
作者:
黑色幽默K
时间:
2015-8-12 21:38
.................................
作者:
小燕小男_爱情
时间:
2015-8-12 21:44
总结的很好!很全面!
作者:
两木三水
时间:
2015-8-12 21:44
理解概念再来看代码,更深刻
作者:
heihie
时间:
2015-8-12 21:50
加油哦{:2_30:}
作者:
愤怒的哈博兔
时间:
2015-8-12 22:39
可以,学习了
作者:
晚上没饭吃
时间:
2015-8-12 22:44
就2个模式,还有装饰,和设计模式
作者:
墨琰
时间:
2015-8-12 22:48
懒汉和饿汉,哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2