成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

設(shè)計(jì)模式筆記python實(shí)現(xiàn)

raledong / 3383人閱讀

摘要:設(shè)計(jì)模式學(xué)習(xí)裝飾器模式這個(gè)在我的筆記中有介紹工廠模式未完成,待更新單例模式保證一個(gè)對(duì)象最多只有一個(gè)實(shí)例存在。對(duì)安全性要求較高的場(chǎng)景,比如銀行的修改余額業(yè)務(wù)。如果我們不使用單例模式,那么就會(huì)創(chuàng)建三個(gè)不同的實(shí)例。

設(shè)計(jì)模式學(xué)習(xí) 1.裝飾器模式

這個(gè)在我的筆記中有介紹

2.工廠模式

author : liibn
time :2018-11-6
未完成,待更新

3.單例模式

保證一個(gè)對(duì)象最多只有一個(gè)實(shí)例存在。如果在有多個(gè)創(chuàng)建實(shí)例的語(yǔ)句,只有第一次的會(huì)真正的創(chuàng)建實(shí)例,后面的語(yǔ)句會(huì)返回第一次創(chuàng)建的實(shí)例。
適合的場(chǎng)景:

某些實(shí)例的創(chuàng)建很耗費(fèi)系統(tǒng)資源。

對(duì)安全性要求較高的場(chǎng)景,比如銀行的修改余額業(yè)務(wù)。

python使用裝飾器簡(jiǎn)單的實(shí)現(xiàn)一下,這個(gè)沒(méi)有考慮多線程的情況,并不完美。

# 單例模式裝飾器
def Singleton(cls):
    _instance = {}

    def _singleton(*args, **kargs):
        if cls not in _instance:
            _instance[cls] = cls(*args, **kargs)
        return _instance[cls]
    return _singleton
    
編寫(xiě)測(cè)試類
@Singleton
class A:
    def __init__(self, x):
        self.x = x
        print(self.x)
        

測(cè)試寫(xiě)好的裝飾器

# 實(shí)例化
a_one = A("one")
a_two = A("two")
a_three = A("three")
# 打印實(shí)例的地址
print(a_one, a_two, a_three, sep="
")
# 比較三個(gè)引用是否相同
print(a_one is a_two is a_three)

輸出如下:

one
<__main__.A object at 0x000001FB17894D68>
<__main__.A object at 0x000001FB17894D68>
<__main__.A object at 0x000001FB17894D68>
True

這里的a_one, a_two, a_three三個(gè)引用指向了同一個(gè)實(shí)例。
如果我們不使用單例模式,那么就會(huì)創(chuàng)建三個(gè)不同的實(shí)例。接下來(lái)注釋掉@Singleton再次運(yùn)行代碼,輸出如下:

one
two
three
<__main__.A object at 0x000001D772F24DA0>
<__main__.A object at 0x000001D772F24EB8>
<__main__.A object at 0x000001D772F2D518>
False

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44931.html

相關(guān)文章

  • 流暢的python讀書(shū)筆記-第十章-繼承優(yōu)缺點(diǎn)

    摘要:繼承的優(yōu)缺點(diǎn)推出繼承的初衷是讓新手順利使用只有專家才能設(shè)計(jì)出來(lái)的框架。多重繼承的真實(shí)應(yīng)用多重繼承能發(fā)揮積極作用。即便是單繼承,這個(gè)原則也能提升靈活性,因?yàn)樽宇惢且环N緊耦合,而且較高的繼承樹(shù)容易倒。 繼承的優(yōu)缺點(diǎn) 推出繼承的初衷是讓新手順利使用只有專家才能設(shè)計(jì)出來(lái)的框架?!狝lan Kay 子類化內(nèi)置類型很麻煩 (如 list 或 dict)) ,別搞這種 直接子類化內(nèi)置類型(如 ...

    morgan 評(píng)論0 收藏0
  • python學(xué)習(xí)筆記- 多線程

    摘要:也提供多線程支持,而且中的線程并非是模擬出來(lái)的多線程,而是系統(tǒng)級(jí)別的標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)模塊和。同一個(gè)變量,線程則會(huì)互相共享。例如多個(gè)線程對(duì)銀行中的某一個(gè)賬戶進(jìn)行操作。但是實(shí)際情況是隨意切換線程。說(shuō)到的多線程編程,就會(huì)繞不過(guò)。 該文章參考了http://www.liaoxuefeng.com/wi... 廖雪峰的教程。 一個(gè)進(jìn)程至少有一個(gè)線程。Python也提供多線程支持,而且Python...

    RiverLi 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來(lái)做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測(cè)形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡(jiǎn)稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡(jiǎn)明扼要地說(shuō)明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開(kāi)始之前,我們先來(lái)看這樣一個(gè)提問(wèn): pyth...

    lifesimple 評(píng)論0 收藏0
  • python學(xué)習(xí)筆記 - 文件讀寫(xiě)

    摘要:文件打開(kāi)的方式有多種。讀取模式寫(xiě)入模式。若文件不存在,則會(huì)創(chuàng)建文件。但是文件必須已經(jīng)存在。模式文件的讀寫(xiě)是文本模式,這就意味著會(huì)把轉(zhuǎn)換成平臺(tái)相關(guān)的換行符。 現(xiàn)代的操作系統(tǒng)其實(shí)都不允許程序直接讀寫(xiě)系統(tǒng)中的文件,而是程序通過(guò)請(qǐng)求系統(tǒng)打開(kāi)一個(gè)文件對(duì)象,然后再對(duì)文件對(duì)象進(jìn)行讀寫(xiě)。 import logging try: f = open(getAttar.py, r) con...

    馬永翠 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

raledong

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<