今天在学习单例设计模式时遇到一个困惑,希望各位黑马能够帮解决下!
为了解决一个类在内存中只存在一个对象,采用的单例设计模式中
public static Single getInstance()
{
return s;
}
这句话中为什么返回值类型为Single 就是为什么是public static Single,我现在是准备直接记住这样的定义方式,但是
不理解为什么?望解答。
程序如下:(这是毕老师写的,我按照他说的来写的。)
class Single
{
private int num;
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}
private Single(){}
private static Single s =new Single();
public static Single getInstance()
{
return s;
}
}
class SingleDis
{
public static void main(String[] args)
{
Single s1=Single.getInstance();
Single s2=Single.getInstance();
s1.setNum(24);
System.out.println(s2.getNum());
}
}
作者: 李思静 时间: 2012-7-13 21:05
因为单例就是在内存中只生成一个对象,所以就是static,并且由于是要生成这个类的一个对象,所以返回值就是本类的一个对象作者: 黑马振鹏 时间: 2012-7-13 21:07
单例设计模式:
class Single{
private static final Single s = new Single();
private Single(){}
public static Single getInstance(){
return s;
}
}
在类的内部创建一个 对象,修饰符 static,最好也加上final 保证唯一性。
构造方法私有化。
肯定还需要对外提供一个访问该对象的方法,所以最后的返回类型必须是Single.