国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

5.python設(shè)計(jì)模式【單例模式】

這篇具有很好參考價(jià)值的文章主要介紹了5.python設(shè)計(jì)模式【單例模式】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

  • 內(nèi)容:保證一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)
  • 角色:
    • 單例(Singleton)
  • UML圖
    5.python設(shè)計(jì)模式【單例模式】,# 設(shè)計(jì)模式,設(shè)計(jì)模式,單例模式,python
  • 舉個(gè)例子:
    需求:一個(gè)類只能實(shí)例化一個(gè)對(duì)象,不能實(shí)例化多個(gè)對(duì)象
from abc import abstractmethod,ABCMeta
'''
__new__:
在基礎(chǔ)類object中,__new__被定義成了一個(gè)靜態(tài)方法,并且需要傳遞一個(gè)參數(shù)cls。Cls表示需要實(shí)例化的類,此參數(shù)在實(shí)例化時(shí)由Python解析器自動(dòng)提供。
new()是在新式類中新出現(xiàn)的方法,它作用在構(gòu)造方法init()建造實(shí)例之前,可以這么理解,
在Python 中存在于類里面的構(gòu)造方法init()負(fù)責(zé)將類的實(shí)例化,而在init()調(diào)用之前,
new()決定是否要使用該init()方法,
因?yàn)閚ew()可以調(diào)用其他類的構(gòu)造方法或者直接返回別的對(duì)象來(lái)作為本類的實(shí)例。

hasattr(cls,"_instance"):
判斷這個(gè)類是否已經(jīng)實(shí)例化

'''


class Singleton:
   def __new__(cls, *args, **kwargs):
       # 如果沒(méi)有實(shí)例化,就實(shí)例化
       if not hasattr(cls,"_instance"):
           cls._instance=super(Singleton,cls).__new__(cls)
       return cls._instance

class MyClass(Singleton):
   def __init__(self,a):
       self.a=a

a=MyClass(10)
b=MyClass(20)

print(a.a)
print(b.a)
print(id(a),id(b))

輸出結(jié)果
20
20
139718467807696 139718467807696
說(shuō)明是同一個(gè)對(duì)象文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-605642.html

  • 優(yōu)點(diǎn):
    • 對(duì)唯一實(shí)例的受控訪問(wèn)
    • 單例相當(dāng)于全局變量,但訪問(wèn)了命名空間被污染

到了這里,關(guān)于5.python設(shè)計(jì)模式【單例模式】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【設(shè)計(jì)模式】單例設(shè)計(jì)模式

    目錄 1、前言 2、基本語(yǔ)法 2.1、懶漢式單例 2.2、餓漢式單例 2.3、雙重檢驗(yàn)鎖單例模式 2.4、靜態(tài)內(nèi)部類單例模式 2.5、枚舉單例模式 2.6、ThreadLocal單例模式 2.7、注冊(cè)單例模式 3、使用場(chǎng)景 4、使用示例 5、常見(jiàn)問(wèn)題 5、總結(jié) 單例模式是一種設(shè)計(jì)模式,它確保一個(gè)類只能創(chuàng)建一個(gè)實(shí)

    2024年02月09日
    瀏覽(29)
  • 設(shè)計(jì)模式學(xué)習(xí)(一)單例模式補(bǔ)充——單例模式析構(gòu)

    設(shè)計(jì)模式學(xué)習(xí)(一)單例模式補(bǔ)充——單例模式析構(gòu)

    目錄 前言 無(wú)法調(diào)用析構(gòu)函數(shù)的原因 改進(jìn)方法 內(nèi)嵌回收類 智能指針 局部靜態(tài)變量 參考文章 在《單例模式學(xué)習(xí)》中提到了,在單例對(duì)象是通過(guò) new 動(dòng)態(tài)分配在堆上的情況下,當(dāng)程序退出時(shí),不會(huì)通過(guò)C++的RAII機(jī)制自動(dòng)調(diào)用其析構(gòu)函數(shù)。本文討論一下這種現(xiàn)象的原因以及

    2024年03月19日
    瀏覽(34)
  • 【設(shè)計(jì)模式】單例模式|最常用的設(shè)計(jì)模式

    【設(shè)計(jì)模式】單例模式|最常用的設(shè)計(jì)模式

    單例模式是最常用的設(shè)計(jì)模式之一,雖然簡(jiǎn)單,但是還是有一些小坑點(diǎn)需要注意。本文介紹單例模式并使用go語(yǔ)言實(shí)現(xiàn)一遍單例模式。 單例模式保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。 使用場(chǎng)景: 當(dāng)類只能有一個(gè)實(shí)例而且可以從一個(gè)公開(kāi)的眾所周知的訪

    2024年04月29日
    瀏覽(31)
  • 設(shè)計(jì)模式之單例設(shè)計(jì)模式

    就是一個(gè)類只允許創(chuàng)建一個(gè)對(duì)象,那么我們稱該類為單例類,這種設(shè)計(jì)模式我們稱為單例模式。 資源共享:有些類擁有共享的資源,例如數(shù)據(jù)庫(kù)連接池、線程池、緩存等。使用單例模式確保只有一個(gè)實(shí)例,避免資源浪費(fèi)和競(jìng)爭(zhēng)條件。 線程安全:?jiǎn)卫J娇梢杂脕?lái)保證多線程

    2024年02月07日
    瀏覽(29)
  • 設(shè)計(jì)模式 ~ 單例模式

    單例模式:指在確保一個(gè)類只有一個(gè)實(shí)例,創(chuàng)建之后緩存以便繼續(xù)使用,并提供一個(gè)全局訪問(wèn)點(diǎn)來(lái)訪問(wèn)該實(shí)例; 前端對(duì)于單例模式不常用,但對(duì)于單例的思想無(wú)處不在; 如:彈窗、遮罩層、登錄框、vuex redux 中的 store; 閉包: 模塊化:

    2024年02月16日
    瀏覽(38)
  • 設(shè)計(jì)模式-單例模式

    ? ? ? 單例模式(Singleton Pattern)是設(shè)計(jì)模式中最簡(jiǎn)單且最常用的一種創(chuàng)建型模式,其目的是保證一個(gè)類在整個(gè)系統(tǒng)中只存在一個(gè)實(shí)例,并提供全局訪問(wèn)點(diǎn)來(lái)獲取這個(gè)唯一實(shí)例。這種模式主要適用于那些需要頻繁實(shí)例化然后又希望避免因?yàn)槎啻螌?shí)例化而消耗過(guò)多資源或產(chǎn)生副

    2024年01月17日
    瀏覽(25)
  • 設(shè)計(jì)模式——單例模式

    設(shè)計(jì)模式——單例模式

    確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。 即保證一個(gè)類只有一個(gè)實(shí)例,并且提供一個(gè)全局訪問(wèn)點(diǎn) 優(yōu)點(diǎn) 單例對(duì)象在內(nèi)存中只有一個(gè)實(shí)例,減少了內(nèi)存的開(kāi)支。尤其對(duì)于一個(gè)頻繁創(chuàng)建、銷毀的對(duì)象時(shí),單例模式的優(yōu)勢(shì)就更明顯。 減少系統(tǒng)的性能

    2024年02月16日
    瀏覽(34)
  • 【設(shè)計(jì)模式-單例模式】

    【設(shè)計(jì)模式-單例模式】

    在一個(gè)項(xiàng)目中的全局范圍內(nèi), 一個(gè)類 有且僅有一個(gè)實(shí)例對(duì)象 。這個(gè)唯一的實(shí)例對(duì)象給其他模塊提供數(shù)據(jù)的 全局訪問(wèn) 。這樣的模式就叫 單例模式 。 單例模式的典型例子就是任務(wù)隊(duì)列。 首先, 考慮單例模式的要求為有且僅有一個(gè)實(shí)例對(duì)象。那么就先從構(gòu)造函數(shù)入手。類的構(gòu)

    2024年02月13日
    瀏覽(31)
  • 設(shè)計(jì)模式(單例模式)

    ????????保證指定的類只有一個(gè)實(shí)例,不能創(chuàng)建出其他的實(shí)例 ? ? ? ? ? ? ? ? 1.1 代碼展示 ? ? ? ? ? ? ? ? 1.2 Singleton類中instance對(duì)象的創(chuàng)建時(shí)機(jī) ????????????????Singleton類中instance對(duì)象的創(chuàng)建時(shí)機(jī):在Singleton類被jvm加載的時(shí)候創(chuàng)建,Singleton類會(huì)在第一次使用的時(shí)

    2024年02月15日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包