Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
主要用于连接池的设计。。
如:形式一
- public class Singleton {
- private static Singleton st = new Singleton();
- private Singleton(){}
- public static Singleton getInstance(){
- return st;
- }
- }
形式二:lazy initialization
- public class Singleton {
- private static Singleton st = null ;
- private Singleton(){}
- public static synchronized Singleton getInstance(){
- if (st == null )
- st = new Singleton();
- return st;
- }
- }
注意第二种方法用了synchronized关键字,而且并不是每次都生成对象,使用时提高了生成实例的效率,但一般认为形式一更为安全些。