亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#設計模式-單實例

2019-11-17 02:44:09
字體:
來源:轉載
供稿:網友

C#設計模式-單實例

單例模式就是保證在整個應用程序的生命周期中,在任何時刻,被指定的類只有一個實例,并為客戶程序提供一個獲取該實例的全局訪問點。

1.經典的模式

namespace singleClass{    class OnlyOneClass    {        PRivate OnlyOneClass() { }        private static OnlyOneClass instance;        public static OnlyOneClass getInstance() {            if (instance == null) {                    instance = new OnlyOneClass();                    return instance;            }            return instance;        }    }}

分析一下:

1)通過私有化構造函數,使該類被調用的時候不能通過new來實現

2)定義一個靜態變量類,它的生命周期和程序的生命周期是一樣的,通過該靜態變量來保存該類的實例

2)通過一個靜態方法來實例化自己,并返還實例化后的結果,因為該方法先檢查全局的實例,再判斷是否再創建,保證只有一個實例

但是,這種方式如果碰到了多線程并發,問題就來了,如A,B兩個線程同時訪問了這個類,第一次檢查時候都是null,會出現兩個同時建立自己實例情況,這樣就違背單實例模式的原則

改進一下后:

2.俗稱懶漢模式

namespace singleClass{    class OnlyOneClass    {        private OnlyOneClass() { }        public string thisname;        private static OnlyOneClass instance;        private static object _lock = new object();        public static OnlyOneClass getInstance() {            if (instance == null) {                lock (_lock)                {                    if (instance == null)                    {                        instance = new OnlyOneClass();                        return instance;                    }                }            }            return instance;        }    }}

解析:

1)聲明一個object 變量,作為lock對象

2)先判斷instance的變量是否為null,如果不為null也就不用lock了,直接返回實例

3) 如果是null,鎖定對象,繼續判斷是否為null,以防有其他線程在lock前已經新建了實例,lock后可以保證在一個線程內操作

3.餓漢模式

class HungerClass{        private HungerClass() { }        private readonly static HungerClass instance=new HungerClass ();        public static HungerClass getInstance(){            return instance;        }    }
可以看出這種模式是在類初始化后就已經實例化了instance,不同于上面的懶漢模式時在調用getInstance()方法后實例化。
這種方式下,線程安全的問題將交給CLR。

4.測試

演示一下,通過聲明兩個OneClass類,只一個對其的thisname賦值,然后輸出這兩個類的thisname,看看另一個會怎樣
class Program    {                static void Main(string[] args)        {            Console.WriteLine("Get a instanc from OnlyOneClass!");            try {                OnlyOneClass one = OnlyOneClass.getInstance();//one 第一個類的變量                        Console.WriteLine(one.ToString());                                  while(true){                      string ins = Console.ReadLine();                      if (ins != "") { one.thisname = ins; }//只對one實例的thisname賦值                      OnlyOneClass two = OnlyOneClass.getInstance();//two 第二個類的變量                      Console.WriteLine(one.thisname +" one");//輸出 one實例的thisname                      Console.WriteLine(two.thisname +" two"); //輸出 two實例的thisname                      Thread.Sleep(1000);                  }            }            catch (Exception e) {                Console.WriteLine(e.Message);            }                       Console.ReadKey();        }    }}
image
可以看到這兩個實例都來自一個實例。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频在线观看一区二区| 日韩视频在线免费| 国产精品com| 欧美人交a欧美精品| 日韩精品在线观看一区| 欧美日韩亚洲天堂| 91欧美视频网站| 91精品国产综合久久香蕉| 色一区av在线| 欧美精品videofree1080p| 国色天香2019中文字幕在线观看| 成人免费在线网址| 日韩久久免费电影| 国产情人节一区| 92国产精品视频| 久久久久亚洲精品成人网小说| 久久视频国产精品免费视频在线| 成人有码在线视频| 亚洲自拍偷拍色图| 亚洲精品视频二区| 久久亚洲精品国产亚洲老地址| 成人美女av在线直播| 久久影视电视剧免费网站| 亚洲精品日产aⅴ| 国产亚洲一级高清| 韩国国内大量揄拍精品视频| 成人国产精品日本在线| 久久免费精品日本久久中文字幕| 精品福利樱桃av导航| 91精品视频观看| 亚洲欧美一区二区三区情侣bbw| 欧美性极品xxxx做受| 国产成人小视频在线观看| 精品视频偷偷看在线观看| 97精品伊人久久久大香线蕉| 日本19禁啪啪免费观看www| 久久最新资源网| 国产成人精品优优av| 欧美第一黄网免费网站| 国产亚洲精品久久| 亚洲欧美日韩国产中文专区| 亚洲成色999久久网站| 久久亚洲成人精品| 亚洲精品自在久久| 午夜精品福利视频| 91中文字幕一区| 亚洲欧美国产制服动漫| 91视频免费网站| 日本精品久久电影| 亚洲乱码国产乱码精品精天堂| 美女av一区二区三区| 精品国产网站地址| 日韩一区在线视频| 国产视频亚洲视频| 欧美中文字幕精品| 欧美大尺度电影在线观看| 中文字幕欧美精品在线| 国产精品色午夜在线观看| 国产综合久久久久久| 欧美精品在线网站| 秋霞成人午夜鲁丝一区二区三区| 亚洲精品一区中文字幕乱码| 国产精品视频最多的网站| 日韩视频精品在线| 成人福利在线视频| 欧美华人在线视频| 国产视频亚洲视频| 午夜伦理精品一区| 最近日韩中文字幕中文| 久久99精品国产99久久6尤物| 中文字幕日韩av| 亚洲全黄一级网站| 91精品国产99久久久久久| 久久福利网址导航| 欧美肥老妇视频| 亚洲欧美综合图区| 精品亚洲国产成av人片传媒| 日本在线观看天堂男亚洲| 啊v视频在线一区二区三区| 国产精品丝袜高跟| 日韩中文字幕在线| 欧美一级高清免费| 久久精品成人动漫| 中文字幕日韩av电影| 日韩av在线播放资源| 国产精品99导航| 国产精品电影一区| 欧美在线精品免播放器视频| 国产亚洲欧洲高清一区| 精品久久久久久亚洲国产300| 色综合久久精品亚洲国产| 亚洲色在线视频| 久久久久久91香蕉国产| 国产精品久久久久久久av电影| 亚洲一区二区三区sesese| 亚洲a在线播放| 国产精品高清在线观看| 57pao国产精品一区| 国产成人短视频| 97成人精品区在线播放| 日韩中文在线视频| 高清一区二区三区日本久| 国产亚洲欧洲高清| www.久久色.com| 亚洲性xxxx| 亚洲精品理论电影| 91精品国产高清自在线| 国产亚洲欧美日韩一区二区| 91理论片午午论夜理片久久| 日本最新高清不卡中文字幕| 亚洲欧美中文日韩在线| 亚洲嫩模很污视频| 日韩在线激情视频| 久久精品久久久久久国产 免费| 成人国产精品色哟哟| 欧美性xxxx极品高清hd直播| 久久精品久久久久| 91a在线视频| 欧美在线视频观看免费网站| 日韩中文字幕在线观看| 日韩欧美高清视频| 国产精品av在线| 亚洲成人av片在线观看| 91视频国产高清| 另类专区欧美制服同性| 国产99久久久欧美黑人| 欧美做爰性生交视频| 日韩欧美国产骚| 色中色综合影院手机版在线观看| 伊人亚洲福利一区二区三区| 国产日韩在线精品av| 久久久www成人免费精品| 国产成人精品综合久久久| 亚洲丝袜一区在线| 中文字幕日韩在线视频| 欧美日韩成人免费| 亚洲精品v天堂中文字幕| 欧美性xxxxxxx| 国产小视频91| 色多多国产成人永久免费网站| 亚洲最新中文字幕| 国内精品一区二区三区| 精品久久久久久国产| 午夜美女久久久久爽久久| 国产精品久久久久久久久久东京| 国产精品亚洲美女av网站| 亚洲香蕉av在线一区二区三区| 亚洲视频在线播放| 欧美成人免费一级人片100| 国产97在线|亚洲| 久久中文字幕视频| 91色视频在线导航| 成人高清视频观看www| 欧美老少做受xxxx高潮| 亚洲最大的成人网| 久久精品久久久久久国产 免费| 欧美精品在线第一页| 亚洲男女自偷自拍图片另类| 欧美在线视频在线播放完整版免费观看| 成人黄色免费在线观看| 岛国av午夜精品| 国产丝袜一区二区三区| 亚洲高清久久网| 久久免费福利视频|