以private构造器实现对象的singleton

类别:Java 点击:0 评论:0 推荐:

所谓的singleton指的是在整个webapplication的生命周期内,始终只有一个实例运行的设计模式,这种singleton模式,通常在外部环境和对象的属性相对较为稳定的条件下采用的模式,singleton模式可以节约资源,减少系统不必要的开销,因而最终可以提高系统的性能.

目前可以采用两种方式实现singleton模式,其共同点是把构造器都声明为private,并提供一个public static成员(成员方法或者成员变量),允许客户存取唯一一个实体.下面将具体介绍这两种实现singleton模式的方法:

Ø         方法一:把public static成员声明为final形式

例如:

public class SingletonClass{

public static final SingletonClass INSTANCE= new SingletonClass ();

 

private SingletonClass(){

 

}

 

}

注意上面的成员变量声明为final形式,这可以保证,构造SingletonClass实例时,始终是同一个实例,在用SingletonClass. INSTANCE调用构造器时只能调用一次,从而,这种方式最终保证了运行期内,只有一个实例产生.

 

Ø         方法二:用public static factory method实现singleton

例如:

public class SingletonClass{

private static final SingletonClass INSTANCE= new SingletonClass ();

 

private SingletonClass(){

 

}

 

public static SingletonClass getInstance(){

return INSTANCE;

}

 

}

这种方式可以用SingletonClass.getInstance()方法进行单实例的构造,这种方式采用getInstance方法进行单实例的构造,把构造器声明为private形式,避免客户从其它路径进行实例的构造.

  在我们实际开发的过程中,在很多地方会用到单例模式,例如数据库链接池connection的读取,配置文件的读取等等,许多地方应该使用单例模式,以避免因实例的构造过多而造成程序整体性能上的损失

本文地址:http://com.8s8s.com/it/it14902.htm