所谓的单态设计模式是指采取一定的方法保证在整个的软件系统中对某个类只能存在一个对象实例,并且该类只提供一个产生该对象实例的方法如果我们只希望产生一个实例对象,那么必须把构造函数设为private类型的,那么在该类的外部就不能用new()产生实例,因为在类的外部他无法使用私有的构造函数,所以只能调用该类的一个公共的静态函数.程序设计如下:
class AA
{
static AA objref=new AA();
private AA()
{
}
public static AA getInstance()
{
return objref;
}
{
static AA objref=new AA();
private AA()
{
}
public static AA getInstance()
{
return objref;
}
}
public class BB
{
public static void main(String []args)
{
AA obj1=AA.getInstance();
AA obj2=AA.getInstance();
if(obj1==obj2)
System.out.println("true");
}
}
public class BB
{
public static void main(String []args)
{
AA obj1=AA.getInstance();
AA obj2=AA.getInstance();
if(obj1==obj2)
System.out.println("true");
}
}
运行结果为:true
请注意程序中的两个static.先说第二个因为在类AA外面无法产生该类的实例,所以该处必须为静态。而对于第一个,若没有的话当每产生一个实例的时候都会执行的一段代码再产生另一个实例这样如此重复下去直到把内存耗完为止,同时我们也不能在一个静态方法中引用一个动态的变量。所以必须为static类型的。在很多面是的时候我们也经常碰到类似的问题:例如如何在内存中只产生一个类的实例.相信看了上面的例子问题就会迎刃而解了.