单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局
访问点,对一些类来说,只有一个实例是很重要的。
实用性:在下面的情况下可以使用Singleton模式。
1 当类只能有一个实例而且客户可以从一个总所周知的访问点访问时。
2 当这个唯一实例应该是通过子类化可扩展,并且客户应该无需要更改代码就能使用一个扩展的实例时。
public class Singleton{
private Singleton(){
generator = new Random();
}
public void setSeed(int seed){
generator.setSeed(seed);
}
public int nextInt(){
return generator.nextInt();
}
public static synchronized Singleton getInstance(){
if (instance == null) {
instance = new Singleton();
}
return instance;
}
private Random generator;
private static Singleton instance;
}
客户端调用的代码:
package singleton;
public class Client{
public static void main(String[] args){
Singleton s1 = Singleton.getInstance();
System.out.println(s1.toString());
for(int i=0;i<10;i++){
Singleton s2 = Singleton.getInstance();
System.out.println("The randomed number is "+s2.toString());
}
}
}
转载自: http://tianli.blog.51cto.com/190322/43743/