最近在帖子上看见有的同学们问到了单例设计模式,本人也是一个java初学者,为了弄清单例设计模式,
特把毕老师的视频看了好几遍,现总结了一下,希望对不明白的同学们有所帮助!
//设计模式:就是前辈的编程人员 在设计开发的过程中总结出来的一套经验方法
//单例设计模式:就是让一个类在内存中只能产生一个对象
//单例的思想:1,将构造函数私有化------就不能随意的创建对象了
// 2,在本类中自定义对象,以便于获取
// 3,创建一个方法,用于获取本类对象。
//单例设计模式:饿汉式 懒汉式 开发中我们一般使用饿汉式
//饿汉式:在获取方法之外就创建本类对象,饿汉式线程比较安全
class SingleDemo
{
private SingleDemo(){}
private static SingleDemo sd=new SingleDemo();//为什么要定义静态的
public static SingleDemo getInstance()
{
return sd;
}
}
//懒汉式:此线程是不安全的,比较容易发生异常
class SingeDemo1
{
private SingleDemo1(){}
private SingleDemo1 sd1=null;//在外部不创建对象
public static SingleDemo1 getInstance()
{
if(sdi==null)
sd1=new SingleDemo();
return sd1;
}
}
//解决方法:加入多线程的技术 解决了线程不安全的隐患
class SingeDemo1
{
private SingleDemo1(){}
private SingleDemo1 sd1=null;//在外部不创建对象
public static SingleDemo1 getInstance()
{
if(sdi==null)
synchronized(Object obj)
{
if(sd1==null)
sd1=new SingleDemo();
}
return sd1;
}
} |