Java基础之单例模式


这里主要讲一下单例模式的两种形式,当然还有其他的实现方式

单例模式的作用主要是确保在java应用中,一个类只用一个实例存在

主要方法是定义一个类,他的构造方法是private的,他的方法都是static的

形式一

在自己的内部定义并实例化一个自己的实例,getInstance()方法是供外部访问本类使用的,可以直接访问。

  1. /** 
  2.  * 单例模式一 
  3.  * 一般认为这种形式更安全一些  
  4.  */  
  5. public class Singleton {  
  6.       
  7.     private Singleton(){}  
  8.     private static Singleton instance = new Singleton();  
  9.     private static Singleton getInstance(){  
  10.         return instance;  
  11.     }  
  12. }  

模式二

这种方法比模式一有所改进,不是每次都生成对象,提高了效率

  1. /** 
  2.  * 单例模式二 
  3.  */  
  4. public class Singleton2 {  
  5.     private static Singleton2 instance = null;  
  6.     private static synchronized Singleton2 getInstance(){  
  7.         if(instance == null){  
  8.             instance = new Singleton2();  
  9.         }  
  10.         return instance;  
  11.     }  
  12. }  

相关内容