- 论坛徽章:
- 0
|
所谓单态设计模式(即是类在内存中只能创建一个实例对象)就是采取一定的方法保证在整个的软件系统中,对某个类只能产生一个对象实例,并且该类只提供一个取得其实例对象的方法.如果我们要让类在一个虚拟机中只能产生一个对象.我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象.因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法一返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以指向类内部产生的该类对象的变量也必须定义成静态的.
例如:
class SingleObj
{
//在类的内部创建一个变量,可是因为这个变量是对象中的一个变量,而调用方法时对象还
//没有产生,所以就要设置成静态的.
static SingleObj objRef = new SingleObj();
// 由于想获得这个对象,那么就要提供一个方法给外面直接访问,但是外面还没有创建对象
// 就要访问这个方法,所以必须是静态的.无论以后调用多少次getInstance这个成员方法,
// 它返回的对象都是一个.
public static SingleObj getInstance()
{
return objRef;
}
//构造函数设为private,其他类就无法用new来创建该类的对象
private SingleObj()
{
}
}
class Test
{
public static void main(String [] args)
{
SingleObj obj1 = SingleObj.getInstance();
SingleObj obj2 = SingleObj.getInstance();
System.out.println(obj1==obj2);
}
}
输出的结果为:ture
证明在内存中只有一个实例变量.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/67175/showart_586920.html |
|