您好,登錄后才能下訂單哦!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 單例模式
{
/// <summary>
/// 單例模式作用產(chǎn)生唯一對(duì)象
單例類只能有一個(gè)實(shí)例。
單例類必須自己創(chuàng)建自己的唯一實(shí)例。
單例類必須給所有其它對(duì)象提供這一實(shí)例。
應(yīng)用:
每臺(tái)計(jì)算機(jī)可以有若干個(gè)打印機(jī),但只能有一個(gè)Printer Spooler,避免兩個(gè)打印作業(yè)同時(shí)輸出到打印機(jī)。
一個(gè)具有自動(dòng)編號(hào)主鍵的表可以有多個(gè)用戶同時(shí)使用,但數(shù)據(jù)庫中只能有一個(gè)地方分配下一個(gè)主鍵編號(hào)。否則會(huì)出現(xiàn)主鍵重復(fù)。
/// </summary>
class Program
{
static void Main(string[] args)
{
//餓漢式
Penson p = Penson.GetPenson();
//懶漢式
Animus animus = Animus.GetAnimus();
}
}
class Penson
{
/// <summary>
/// 單例模式之餓漢式
/// </summary>
//第一步設(shè)置私有的構(gòu)造函數(shù)
private Penson()
{ }
//第二步:設(shè)置全局唯一變量
private static Penson _penson = new Penson();
//第三步:寫返回值為Penson類型的函數(shù)
public static Penson GetPenson()
{
return _penson;
}
}
class Animus
{
/// <summary>
/// 單例模式之懶漢式
/// </summary>
private Animus() { }
private static Animus _animus = null;
public static Animus GetAnimus()
{
if (_animus == null)
{
_animus = new Animus();
}
return _animus;
}
}
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。