寫乙個單例模式示例

2021-09-28 17:56:01 字數 1539 閱讀 7414

*要點

*1.某個類只能有乙個例項

*2.它必須自行建立這個例項

*3.它必須自行向整個系統提供這個例項

*幾種常見形式

*餓漢式:*懶漢式:

延遲建立物件

/*

* 懶漢式:

* 1)構造器私有化

* 2)用乙個靜態變數儲存這個唯一的例項

* 3)提供乙個靜態方法,獲取這個例項物件

*/class

singletondemo

public static singletondemo getinstance()

return instance;

} */

/** * // 執行緒安全(適用於多執行緒)

private static singletondemo instance;

private singletondemo()

public static singletondemo getinstance() }}

return instance;

}*//* * 靜態內部類形式(適用於多執行緒)

* 在內部類被載入和初始化時,才創instance物件

* 靜態內部類不會自動隨著外部類的載入和初始化而初始化,它是要單獨載入和初始化的

* 因為是在內部類載入和初始化時建立的,因此執行緒是安全的

*/private

singletondemo()

private

static

class

inner

public

static singletondemo getinstance()

}public

class

singletontest

}

1.修飾成員變數

給變數加上static關鍵字後,變數變為全域性變數

*jvm在載入時會將此變數載入到方法區而不是堆裡

2.修飾成員方法

可以使用 類名.方法名 操作方法 不需要在new出物件

3.靜態**塊

當new出乙個物件後,static修飾的成員變數首先被初始化

隨後是普通成員,最後是構造方法,

*在程式執行的過程中,static只會在第一次new時被初始化

4.靜態導包

5.**塊

靜態塊最先執行,其次時普通**塊,再是構造方法

1.用在類上表示該類不可以被繼承

2.用在方法上表示該方法不可以被重寫(override)

3.用在變數上表示 該變數一旦被賦值 值不能被改變

static修飾的屬性強調它們只有乙個,final修飾的屬性表明

是乙個常數(建立後不能被修改)。static final修飾的屬性

表示一旦給值,就不可修改,並且可以通過類名訪問。

Python 寫乙個單例模式

class amimal object a none b true def new cls,args,kwargs if not cls.a cls.a object.new cls 呼叫基類的 new 方法建立物件,修改類屬性 a return cls.a def init self,name,a...

寫乙個高併發下面的單例模式 單例模式詳解

保證整個系統中乙個類只有乙個物件的例項,實現這種功能的方式就叫單例模式。1 單例模式節省公共資源 比如 大家都要喝水,但是沒必要每人家裡都打一口井是吧,通常的做法是整個村里打乙個井就夠了,大家都從這個井裡面打水喝。對應到我們計算機裡面,像日誌管理 印表機 資料庫連線池 應用配置。2 單例模式方便控制...

如何用C 寫乙個Singleton 單例模式

單例模式是比較常用的設計模式,尤其是在遊戲設計中會經常用到,在面試中也是非常容易被問到和實現。今天我們來看看如何用c 來實現乙個singleton。單例模式的主要特性是只能例項化乙個物件,在遊戲中我們會有各種資源,我們也會在各個地方需要訪問這些資源,那麼如何得到這些資源呢?我們可以寫乙個資源管理類來...