Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之單例模式初探(源代碼分享)

Android開發之單例模式初探(源代碼分享)

編輯:關於Android編程

單例模式是什麼呢?是Java23中模式之一,在Android開發中也有著廣泛的運用,比如Calander類,在創建對象的時候並不是通過 new Calander而是Calander.getInstnce(),這就是單例模式的一種運用,應用的場合是什麼呢?我們在很多時候有些對象只需要一個就夠了,並不需要多個,就比如古代的皇帝,一山不容二虎,老虎多了只有壞處沒有好處。它的作用就是保證整個應用程序中某個實例有且只有一個,one is all!

單例模式呢分為兩種一個是餓漢模式一個是懶漢模式,讓我們先來看一下餓漢模式和懶漢模式分別是什麼把!

先來看看餓漢模式的廬山真面目吧!

public class Singleton {
	//1.將構造方法私有化,不允許外部直接創建對象
	private Singleton(){		
	}
	
	//2.創建類的唯一實例,使用private static修飾
	private static Singleton instance=new Singleton();
	
	//3.提供一個用於獲取實例的方法,使用public static修飾
	public static Singleton getInstance(){
		return instance;
	}
}
為了不讓該類能構造出多個對象,餓漢模式第一步將構造方法私有化了,不允許外部直接創建對象。第二步再創建該類的唯一實例,並用private static修飾,通過getInstance()方式返回,保證了調用類不能對該類隨意修改。餓漢模式的最大特點呢,是只要類開始加載,就會創建對象。

再來看下懶漢模式

public class Singleton2 {
	//1.將構造方式私有化,不允許外邊直接創建對象
	private Singleton2(){
	}
	
	//2.聲明類的唯一實例,使用private static修飾
	private static Singleton2 instance;
	
	//3.提供一個用於獲取實例的方法,使用public static修飾
	public static Singleton2 getInstance(){
		if(instance==null){
			instance=new Singleton2();
		}
		return instance;
	}
}

我們可以看到懶漢模式和餓漢模式大致形同,唯一不同的是在第二步只聲明類並不創建對象。

最後我們總結下兩者的區別:

餓漢模式的特點是加載類時比較慢,但運行時獲取對象的速度比較快,線程安全。
懶漢模式的特點是加載類時比較快,但運行時獲取對象的速度比較慢,線程不安全。多線程操作的時候要注意!


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved