第一講 單例模式

2022-03-04 10:38:05 字數 1332 閱讀 4480

單例模式是一種物件建立型模式,使用單例模式,可以保證為乙個類只生成唯一的例項物件。也就是說,在整個程式空間中,該類只存在乙個例項物件。

gof對單例模式的定義是:保證乙個類、只有乙個例項存在,同時提供能對該例項加以訪問的全域性方法。

在開發中,經常有如下需求:

/**

* 餓漢式 (是執行緒安全的)

* */public

class

person

public

string getname()

public

void

setname(string name)

//提供乙個全域性的靜態方法

public

static

person getpersoninstance()

}

package

test.com.singleton;

/*** 懶漢式 (執行緒不安全) *

*/public

class

person2

public

string getname()

public

void

setname(string name)

//提供乙個全域性的靜態方法

public

static

person2 getperson2instance()

return

per;

}}

package

test.com.singleton;

/*** 雙重檢查 (執行緒安全的) *

*/public

class

person3

public

string getname()

public

void

setname(string name)

//提供乙個全域性的靜態方法

public

static

person3 getperson3instance() }}

return

per;

}}

package

test.com.singleton;

/*** 測試 *

*/public

class

main

}

noteless

設計模式第一講 策略模式

高內聚,低耦合,擴充套件性強 比如 商場打折的商品 計算,就可以使用策略模式,不同的折扣設計成不同的策略,外部只需要呼叫不同的策略,而不用關心策略的具體實現,而且給策略留下了足夠的 拓展空間。public inte ce istrategy public class strategycontaine...

設計模式學習第一講

1 物件導向思想是面向介面程式設計 2 優先使用類繼承 3 只有非常強的 is a 才使用類繼承 4 使用 重構 得到模式,設計模式不能先入為主 5 源 就是設計 一篇 設計原則 1 單一職責原則 srp 乙個類應該僅有乙個引起它變化的原因 2 開放封閉原則 ocp 類模組應該是可擴充套件的,但是不...

第一講 遞迴

遞迴 recursion 程式呼叫自身的程式設計技巧。遞迴滿足2個條件 1 有反覆執行的過程 呼叫自身 2 有跳出反覆執行過程的條件 遞迴出口 一 階乘 include using namespace std int recursive int i int main main 三 斐波那契數 inc...