单例模式 设计模式

单例模式是设计模式里考的最多的,单例模式在内存中只有一个实例,减少了系统内存的开支,由于单例模式在系统中只有一个实例,对那些在建立实例是开销较大的,可以通过产生一个实例,让它永久驻留内存,这样可以减少系统开销。单例模式可以避免对资源的多重占用,如对一个文件的多重写操作。可以通过单例模式在系统设置全局的访问点,优化和共享资源访问。

普通的饿汉式单例模式:

 1 public class Singleton {
 2     
 3     private static final Singleton instance= new Singleton();
 4     
 5     private Singleton(){        
 6     }
 7     
 8     public static Singleton getInstance(){
 9         return instance;
10     }
11 }

为了避免每次新建对象的单例模式:

 1 public class Singleton1 {
 2 
 3     private static final Singleton1 instance= null;
 4     private Singleton1(){}
 5     public static Singleton1 getInstance(){
 6         if(instance==null){
 7             return new Singleton1();
 8         }else {
 9             return instance;
10         }
11     }
12 }

线程安全的懒汉式单例模式:

 1 public class Singleton2 {
 2     private static final Singleton2 instance=null;
 3     private Singleton2(){}
 4     public static synchronized Singleton2 getInstance(){
 5         if(instance==null){
 6             return new Singleton2();
 7         }else{
 8             return instance;
 9         }
10     }
11 }

 

posted @ 2014-03-25 17:54  weilq  阅读(123)  评论(0编辑  收藏  举报