您的位置:首页 > 编程语言 > Java开发

Java day05 单例设计模式

2016-03-17 11:28 519 查看
/*设计模式:
java有23种

单例 设计模式:确保一个类在内存中只有一个对象

禁止类外建立该类对象
在本类中定义一个对象,
对外提供方法接口,以实现其他程序对自定义对象(本类内定义对象)的访问
==》
将构造函数私有化
在类内创建本类对象
在类内提供方法获取该对象
*/
class Single
{
//饿汉式:类一进内存就建立对象  通常采用此方式
private Single(){}//构造函数私有,外部不可访问,限制此类只能new一个对象
private int num;
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}

static Single s=new Single();//因为下面的方法的静态,此属性也要静态

static public Single getInstance()//若要 类名.方法 则需要使该方法静态
{
return s;
}
//懒汉式:延迟加载——当调用getInstance()方法时,才建立对象
/*
public static Single s=null;
private Single(){}
public static synchronized Single getInstance()
{
if(s==null)
{
synchronized (Single.class)
{
s=new Single();
}
}
return s;
}
*/
}

class  SingleDemo
{
public static void main(String[] args)
{
Single s1=Single.getInstance();//s1和类中的s指向同一片内存区域
s1.setNum(20);//s1,s2和类中的s指向同一片内存区域
Single s2=Single.getInstance();
System.out.println(s2.getNum());//此句可证明

}
}


懒汉式与饿汉式的区别在,类变量开始声明时便指向一个对象还是调用对外方法时才建立对象

运行结果20 , 很好的贯彻了单例设计模式只允许建立一个对象的方针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: