日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Singleton模式学习

發布時間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Singleton模式学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動機(Motivation)

在軟件系統中,經常有這樣一些類,必須保證它們在系統中只存在一個類的實例,才能確保它們邏輯的正確性,以及良好的效率

如何繞過常規的構造器,提供一種機制來保證一個類只有一個實例。

這應該是類設計者的責任,不是類使用者的責任

意圖(Intent)

保證一個類僅有一個實例,并提供一個實例的全局訪問點。

通用實現:

1.靜態初始化

Code
using?System;

namespace?SafeSingletonDemo
{
????
public?sealed?class?StaticInitialization
????{
????????
private?static?readonly?StaticInitialization?instance?=?new?StaticInitialization();

????????
private?StaticInitialization()
????????{?

????????}

????????
public?static?StaticInitialization?Instance
????????{
???????????
get
???????????{
???????????????
return?instance;
???????????}
????????}

????}
}

2.延遲初始化Singleton

Code
using?System;

namespace?SafeSingletonDemo
{
????
public?sealed?class?DelayInitialization
????{
????????DelayInitialization()
????????{
????????}

????????
public?static?DelayInitialization?Instance
????????{
???????????
get
???????????{
??????????????
return?Nested.instance;
???????????}
????????}
????
????????
class?Nested
????????{
????????????
static?Nested()
????????????{
????????????}
????????????
internal?static?readonly?DelayInitialization?instance?=?new?DelayInitialization();
????????}

????}
}

注意:

??? Singleton模式的實例構造器可以設置成protected允許子類派生

??? Singleton模式一般不要支持ICloneable接口

??? Singleton模式一般不要支持序列化,因為這樣可能產生多個實例

??? Singleton模式只考慮到對象創建的管理,沒有考慮對象銷毀的管理。就支持垃圾回收的平臺和對象的開銷來看,我們一般沒有必要對其銷毀進行特殊的處理。

轉載于:https://www.cnblogs.com/jewleo/archive/2009/04/30/1250_1.html

總結

以上是生活随笔為你收集整理的Singleton模式学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。