单例模式的写法有很多,具体可以参看http://cantellow.iteye.com/blog/838473
这里只是简单介绍。
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
其实在真正的应用中并不是严格就是这么实现的。
在一些开发应用的过程中,比如SpringMVC当中,只是在启动的过程中将类的实例注入生成,也就是整个过程也是只调用一次,所以也就是只有一个实例,也能做到单例。
注意几点:
首先构造方法必须是private的,这样保证该类只能内部实例化,不能在外部被调用的时候实例化。
然后实例对象必须是static变量保证多个调用处共有一个实例。
我是这么理解的,还有必须加上synchronized锁,保证这个方法不能被并发访问,在同一时刻只能有一个类访问这个静态方法