哪位能给我一个单例设计中饿汉式的完整程序。我只知道是用到
1,private Single()
2,private static final Single=new Single();
3,public single getInstance(){return s;} 作者: xscn 时间: 2013-9-24 14:49
不要为了技术分而水分,你问的这个问题视频里有讲的
public final class Single//饿汉式,Single类一进内存,就已经创建好了对象。
{
private static Single s = new Single();//在类中创建一个私有并静态的本类对象
private Single(){}//私有化构造函数
public static Single getInstance()//提供一个方法可以获取到该对象
{
return s;
}
}
复制代码
public final class Single//懒汉式,对象是方法被调用时,才初始化,也叫做对象的延时加载
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)//检查实例是否存在,如果不存在进入下面的synchronized代码块
{
synchronized(Single.class)
{
if(s==null)//拿到锁后再次判断实例是否存在,如果不存在才创建实例
s = new Single();
}
}
return s;
}
}
复制代码
作者: 杨修 时间: 2013-9-24 15:05
单利设计模式只是限制了建立对象的数量为一个,也就是每次使用某一个类的实例都是同一个,楼上已经给出了解决安全问题的代码了,下面给一个暂不考虑安全问题的代码咯。
public final class Single
{
private String name;
private int age;
private static Single s = new Single();
private Single(){}//私有化构造函数
public static Single getInstance()//提供一个方法可以获取到该对象
{
return s;
}
public void setAge(int age)
{
this.age = age;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public String getName()
{
return name;
}
public void toString()
{
return "name"+name+":"+"String"+String;
}
The you smile until forever 、、、、、、、、、、、、、、、、、、、、、 作者: 咕咕猫 时间: 2013-9-24 17:39
class Single
{
private Single(){}//私有化构造函数
private tatic Single s= new Single();//创建本类对象
public static Single getInstance()//提供访问方式
{
return s;//返回给访问者
}
}
实例:
class Single
{
private int num;
public void setnum(int num)
{
this.num = num;
}
public int getnum()
{
return num;
}
private Single(){}
private tatic Single s= new Single();
public static Single getInstance()
{
return s;
}
}
class SingleDome
{
public static void main(String[]args)
{
Single s1= Single.getInstance();
Single s2= Single.getInstance();
s1.stenum(23);
System.out.println(s2.getnum);//打印结果为23 此时ss,s1,s2都指向同一个对象
}
}