1. 程式人生 > >設計模式之單例模式-餓漢式&懶漢式

設計模式之單例模式-餓漢式&懶漢式

定義:保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。

Java中單例模式定義:“一個類有且僅有一個例項,並且自行例項化向整個系統提供。”

通過單例模式可以保證系統中一個類只有一個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在一個,單例模式是最好的解決方案。所謂一山不容二虎,一夫不容二妻,就是這個道理。

在Java中單例模式又叫Singleton模式,保證在Java應用程式中,一個類Class只有一個例項存在。Singleton模式主要有兩種形式:

餓漢式:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class Singleton { //1.將構造方法私有化,不允許外部直接建立物件 private Singleton(){         } //2.建立類的唯一例項,使用private static修飾 private static Singleton instance=new Singleton(); //3.提供一個用於獲取例項的方法,使用public static修飾 public static Singleton getInstance(){ return instance; } }

懶漢式:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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; } }

測試類:

相關推薦

懶漢式

<strong></strong><pre name="code" class="java"><strong>【餓漢式】</strong> public class Single { private stat

設計模式 模式懶漢式

設計模式: 一些人總結出來用來解決特定問題的固定的解決方案。 單例模式 解決一個類在記憶體中只存在一個物件,想要保證物件的唯一。 1 為了避免其他程式過多的建立該類物件。禁止其他程式建立該類物件。 2 為了其他程式可以訪問該類物件,在本類中自定義一個物件。 3 方便其他程

20、設計模式模式-

import java.io.Serializable; /** * 餓漢式-單例模式 * 實現Serializable介面,使其支援序列化與反序列化 */ public class HungrySingleton implements Serializable {

java設計模式(一)建立型模式 模式懶漢式,執行緒安全,雙重檢查)

1.介紹     單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許一個例項存在。  2.實現思路與步驟   1).將該類的構造方法定義為私有方法,這樣其他處的程式碼就無法通過呼叫該類的構造方法來例項化該類的物件,只有通過該類提供的靜態

設計模式模式-&懶漢式

定義:保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。 Java中單例模式定義:“一個類有且僅有一個例項,並且自行例項化向整個系統提供。” 通過單例模式可以保證系統中一個類只有一個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。

設計模式 模式 (C++ 懶漢經典實現 & DCL實現 & 經典實現)

顧名思義: 單例模式,指的是僅有一個(類)例項。 即: 在應用程式的整個生命週期中,任何時刻,某個類(單例類)僅存在唯一一個例項。 同時僅提供一個全域性訪問點。 單例的實現一般要求滿足: (1) 類建構函式私有 (2) 提供一個全域性訪問點 一般是靜態的共有方法 一、單

設計模式模式(+多執行緒情況下的懶漢式)

  今天所記錄的補上昨天未完成的設計模式之單例模式 餓漢式單例:    執行結果:    在編寫餓漢式單例時使用了final 關鍵字進行修飾所以不會出現多執行緒安全的情況產生。接下來我們完善一下昨天的懶漢式單例:   首先我們看一下昨天懶漢式單例的執行圖:        發現

設計模式模式懶漢式

設計模式第一個模式通常是單例模式,是為了防止某個類存在多個物件。 程式碼如下: **singlon.h:** #pragma once #ifndef _SINGLON_H #define _SINGLON_H class singlon { publ

c++、設計模式模式,懶漢,執行緒安全)

單例模式:單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的類一個類只有一個例項。即一個類只有一個物件例項。如何保證一個類只有一個例項並且這個例項易於被訪問呢?定義一個全域性變數可以確保物件隨時都可以被訪

JAVA設計模式模式(轉)

單例對象 日誌 locking anti 常見 基本上 title 加載 懶漢式 本文繼續介紹23種設計模式系列之單例模式。 概念:  java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這裏主要介紹三種:懶漢式單例、餓漢式單例、登記式單例。  單例模式有以下特

設計模式模式

ins 一次 初始 之間 懶加載 sin jdk1.5 代碼 tin 一、概念   Java中單例模式是一種非常常見的設計模式,單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 二、特點   1、單例類只有一個實例。   2、單例類必須自己創建自己的

Python設計模式模式

定義 eat size 字典 con gin 自動 super pytho 單例模式單例模式需要註意的地方在於如何保證創建的實例是唯一的如何保證多線程情況下的訪問清晰明了目前有這麽幾種方法:modulemetaclass__new__decoratormodule其實,Py

PHP設計模式模式

blog inf DDU dbn 返回 bug 面向對象 程序員 userinfo 參考:http://www.cnblogs.com/yangjinjin/archive/2013/01/31/2887492.html 李炎恢PHP第三季視頻 單例模式 單例模式確保某個類

iOS設計模式模式

trac 實例 配方 implement 字節數 bsp 變量 auto == 單例模式:總是返回自己的同一個實例,它提供了對類的對象所提供的資源的全局訪問點,而且返回的實例僅僅能被實例化一次. 單例設計模式設計須要考慮的兩個問題: (1) :發起調

理解js設計模式模式

單例 false single 這樣的 字面量 不可靠 urn 如果 == 單例模式的定義:只提供唯一的一個實例來讓你訪問 js中單例是天然存在的: var a1={ hello:‘js‘ } var a2={ hello:‘js‘ } cons

設計模式模式以及簡單代碼實現

以及 應用 安全 設計模式 div 代碼實現 測試類 加載類 實例 單例模式 保證整個應用某個實例只有一個 單例模式包括懶漢模式和餓漢模式 餓漢模式 懶漢模式 測試類 區別: 餓漢模式的特點加載類時比較慢,但運行獲取對象速度比較快 線程安全 懶漢模式加

設計模式模式 Singleton實現

-- throw return null mage demo1 nbsp 定義 所在 餓漢式 餓漢式單例模式,static變量會在類裝載時初始化,此時也不會涉及多個線程對象訪問該對象的問題。虛擬機保證只會裝載一次該類,肯定不會發生並發訪問的問題,

設計模式模式 Singleton

方式 logs 作用 內部類 內部 singleton 訪問 let 共享 核心作用 保證一個類只有一個實例,並且提供一個訪問該實例的全局訪問點。 常見應用場景 優點

Java設計模式模式

設計 return 線程安全 -s ron none 方法 有一個 ava   一、前言:   轉載需要註明出處: https://i.cnblogs.com/EditPosts.aspx?opt=1   單例模式其實很早之前就已經接觸過了,但都是為了應付面試或者是為了裝X

js設計模式模式

想要 判斷 mage blog nbsp mes new 1-1 單例 1 var xiaowang = (function(argument){ 2 var xiaowangjia = function(message){