編輯:關於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; } }
最後我們總結下兩者的區別:
餓漢模式的特點是加載類時比較慢,但運行時獲取對象的速度比較快,線程安全。
懶漢模式的特點是加載類時比較快,但運行時獲取對象的速度比較慢,線程不安全。多線程操作的時候要注意!
在Android開發當中,在界面上彈出一個Dialog對話框使我們經常需要做的,本篇做一下記錄,以備遺忘時查詢。dialog就是一個在屏幕上彈出一個可以讓用戶做出一個選擇
接著上篇文章,現在在通過Android實際開發和源碼再探觀察者模式,listview是我們日常開發中必用的控件,雖然之前就有listview的替代品(recyclervi
Android中JNI的作用,就是讓Java能夠去調用由C/C++實現的代碼,為了實現這個功能,需要用到Anrdoid提供的NDK工具包,在這裡不講如何配
本文屬於學習分享,如有雷同純屬巧合 怎麼會有雷同呢? 本著技術分享,學習互助的原則,我在此分享一款已經開源的android 圖案解鎖的實現。 它也是參考了a