在開發程式時,往往需要在整個工程中隻需要一個類的執行個體。而這個執行個體一旦被建立就不能被其他的執行個體再建立了,通常我們稱這個實作過程為單例模式。
既然要保證類隻有一個執行個體,那麼就需要其他的類不能使用執行個體化該類。是以,需要将其構造方法設為私有的,即使用private關鍵字修飾。同時,類中提供一個靜态方法,該方法的傳回值是該類的一個執行個體。這樣就隻能使用該靜态方法來擷取類的執行個體了,進而保證了唯一性。
下面通過具體代碼來實作一個單例模式的應用,代碼如下:
要想實作單例模式,首先,需要将類的構造方法定義為類的私有成員方法。當然,如果不是實作單例模式,這樣做是不對的,因為在類外是無法建立該類的執行個體的。既然無法建立類的執行個體,那麼單例模式又是如何建立這個類的執行個體的呢?方法很簡單,在類中定義一個公有的靜态成員方法,在這個靜态成員方法中建立類的執行個體就可以了。
當我們在解決問題時,這個問題的解決方案有很多種,處理起來非常不友善。例如,在使用圖像處理軟體處理圖檔後,需要選擇一種格式儲存。然而各種格式在底層實作的算法并不相同,這剛好适合政策模式。
對于政策模式,需要定一個抽象類來辨別各種政策的抽象。這樣就可以使用多态來讓虛拟機選擇不同的實作類。然後讓每一個中具體的政策來實作這個抽象,并為其中定義的方法提供具體的實作。由于在選擇适當的政策上有些不友善,需要不斷地判斷需要的類型,是以用簡單工廠方法類實作判斷過程。
下面通過代碼來看一下政策模式的應用,代碼如下: