23中設計模式——單例模式

        設計模式是一套被反覆使用,通過分類編目的,代碼設計的經驗總結。使用設計模式的目的是爲了代碼重用,避免程序大量修改,同時使代碼更易於理解,而且保證代碼的可靠性。

1、單例模式

        在某些狀況下,有些對象只須要一個就能夠了,即每一個類只須要一個實例,例如,一臺計算機上能夠鏈接多臺打印機,可是這個計算機是上的程序只能由一個,這裏就 能夠經過單例模式來避免兩個打印做業同時輸出到打印機中,即在整個的打印過程當中只有一個打印程序的實例。

        簡單來講,單例模式(也叫單件模式)的做用就是保證在整個應用程序的生命週期中,任何一個時刻,單例類的實例都只存在一個。

2、單例模式解決的問題

        解決的問題:保證一個類的對象在內存中的惟一性

3、應用場景

        應用場景:讀個程序都在操做操做同一個配置文件時,須要程序A操做後的結果,程序B要知道並基於A操做後的結果進行操做。

4、單例模式的設計步驟:

  1. 將類中的構造函數私有化(不讓其餘程序new該類的對象)

  2. 在本類中new一個對象

  3. 定義一個方法返回該對象

5、單例模式的兩種設計

  1. 懶漢式    是一種延遲加載模式,在調用方法時new對象

  2. 餓漢式     在建立類時就new對象

6、懶漢式

package cn.dzp.flyroc.designmode;

    //懶漢式
public class LazySingleDemo {

    private static LazySingleDemo lazySingleDemo = null;

    private LazySingleDemo(){}      //定義構造方法

    public static LazySingleDemo getInstance(){

        if (lazySingleDemo == null){
            LazySingleDemo lazySingleDemo = new LazySingleDemo();       //建立單例對象
        }
        return lazySingleDemo;
    }
}

7、餓漢式

package cn.dzp.flyroc.designmode;

    //餓漢式
public class HungrySingleDemo {

    private static HungrySingleDemo hungrySingleDemo = new HungrySingleDemo();     //建立單例對象

        private HungrySingleDemo(){}        //建立構造函數

        //定義一個方法,返回該對象,讓其餘程序獲取到該對象
        public static HungrySingleDemo getInstance(){
            return hungrySingleDemo;
        }

}
相關文章
相關標籤/搜索