python設計模式

2021-10-01 10:41:03 字數 1526 閱讀 9943

保證某個類在全域性只存在乙個例項

class

singleton

:def

__new__

(cls,

*args,

**kwargs):if

nothasattr

(cls,

'_instance'):

cls._instance=

super()

.__new__(cls,

*args,

**kwargs)

return cls._instance

def__init__

(self)

:pass

s1 = singleton(

)s2 = singleton(

)print

(s1 is s2)

單例模式的應用場景:

單例模式的優點:

單例模式的缺點:

每個例項都有乙個工廠類來進行創造,而不是直接建立例項。

class

product

:def

__init__

(self)

:pass

defgetname

(self)

:return self.name

defgetprice

(self)

:return self.price

class

pen(procduct)

:def

__init__

(self)

: self.name =

'pen'

self.price =

10class

*****

(product)

:def

__init__

(self)

: self.name =

'*****'

self.price =

15class

productfactory

:def

pruduce

(self)

:return self.productclass(

)class

penfactory

(productfactory)

:def

__init__

(self)

: self.productclass = pen

class

*****factory

(productfactory)

:def

__init__

(self)

: self.productclass = *****

p1 = penfactory(

)p2 = *****facory(

)pen = p1.produce(

)*****= p2.produce(

)

使用場景:

優點:

Python設計模式 狀態設計模式

狀態設計模式的簡單示例 優缺點乙個物件可以基於其內部狀態封裝多個行為。狀態模式可以看作在執行時改變物件行為的一種方式。以收音機為例進行說明。收音機具有am fm 切換開關 兩種調頻方式和乙個掃瞄按鈕。因此根據收音機的基本狀態 am fm 當調諧到am或fm頻道時,掃瞄按鈕的行為就會動態的改變。con...

python設計模式 原形設計模式

一 什麼是原形設計模式 原型設計模式 prototype design pattern 幫助我們建立物件的轉殖,其最簡單的形式就是一 個clone 函式,接受乙個物件作為輸入引數,返回輸入物件的乙個副本。在python中,這可以 使用copy.deepcopy 函式來完成。二 應用案例 三 實現使用...

Python 設計模式

例項 類 類工廠 簡單來說就是把一些具有相同方法的類再進行封裝,抽象共同的方法以供呼叫.是工廠方法的高階版本.例項 類 類工廠 抽象工廠 這個python裡可以使用 property實現,就是當呼叫的時候才生成.builder模式主要用於構建乙個複雜的物件,但這個物件構建的演算法是穩定的,物件中的各...