Singleton模式:
主要用于代表系统中全局唯一的资源和对象.其保证了该类实例对象在系统中是唯一的.
实现:(java)
1.形式一:
public class Singleton
{
private static singleton=new Singleton();
private Singleton(){}
public Singleton getInstance()
{
return singleton;
}
}
2.形式二:
public class Singleton
{
private static singleton=null;
private Singleton(){}
synchronized public static Singleton getInstance()
{
if(singleton==null)
singleton=new singleton();
return singleton;
}
}
注意: 在分布式系统中该模式并不能保证其唯一性,形式二可以保证其在每个JVM上是唯一的,但是如果用其代表整个系统的唯一资源其是不可靠的,因为资源是由中间件容器管理的.对于形式一,对于实例的重新装载来说,有可能造成实例的不唯一性,例如servlet.还有就是对于形式二的getInstance方法,使用双锁定并不能保证其唯一性,因为有些编译器优化器可以在成员初始化前进行分配.
阅读(1531) | 评论(0) | 转发(0) |