單例模式是一種物件建立型模式,使用單例模式,可以保證為乙個類只生成唯一的例項物件。也就是說,在整個程式空間中,該類只存在乙個例項物件。gof對單例模式的定義是:保證乙個類、只有乙個例項存在,同時提供能對該例項加以訪問的全域性方法。
在開發中,經常有如下需求:
/*** 餓漢式 (是執行緒安全的)
* */public
class
person
public
string getname()
public
void
setname(string name)
//提供乙個全域性的靜態方法
public
static
person getpersoninstance()
}
packagetest.com.singleton;
/*** 懶漢式 (執行緒不安全) *
*/public
class
person2
public
string getname()
public
void
setname(string name)
//提供乙個全域性的靜態方法
public
static
person2 getperson2instance()
return
per;
}}
packagetest.com.singleton;
/*** 雙重檢查 (執行緒安全的) *
*/public
class
person3
public
string getname()
public
void
setname(string name)
//提供乙個全域性的靜態方法
public
static
person3 getperson3instance() }}
return
per;
}}
packagetest.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...