日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Singleton模式学习

發布時間:2025/7/14 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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模式学习的全部內容,希望文章能夠幫你解決所遇到的問題。

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