以private构造器实现对象的singleton

所谓的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的读取,配置文件的读取等等,许多地方应该使用单例模式,以避免因实例的构造过多而造成程序整体性能上的损失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值