這裡主要講一下單例模式的兩種形式,當然還有其他的實現方式
單例模式的作用主要是確保在java應用中,一個類只用一個實例存在
主要方法是定義一個類,他的構造方法是private的,他的方法都是static的
形式一
在自己的內部定義並實例化一個自己的實例,getInstance()方法是供外部訪問本類使用的,可以直接訪問。
- /**
- * 單例模式一
- * 一般認為這種形式更安全一些
- */
- public class Singleton {
-
- private Singleton(){}
- private static Singleton instance = new Singleton();
- private static Singleton getInstance(){
- return instance;
- }
- }
模式二
這種方法比模式一有所改進,不是每次都生成對象,提高了效率
- /**
- * 單例模式二
- */
- public class Singleton2 {
- private static Singleton2 instance = null;
- private static synchronized Singleton2 getInstance(){
- if(instance == null){
- instance = new Singleton2();
- }
- return instance;
- }
- }