主要作用:確保該類只有乙個例項存在
class
singleton
(object):
def__init__
(self)
:pass
def__new__
(cls,
*args,
**kwargs):if
nothasattr
(singleton,
"_instance"):
singleton._instance =
object
.__new__(cls)
return singleton._instance
工廠模式包含多個類,其中乙個類想象為乙個工廠,其他類想象為工廠裡的產品,而且產品通常包括父類以及同乙個父類下的多個子類,像是一條產品系列線,並且都通過工廠類來』生產『產品。
好處是提高了可擴充套件性和可維護性。
class
person
:def
__init__
(self)
: self.name =
none
self.gender =
none
defgetname
(self)
:return self.name
defgetgender
(self)
:return self.gender
class
male
(person)
:def
__init__
(self, name)
:print
"hello mr."
+ name
class
female
(person)
:def
__init__
(self, name)
:print
"hello miss."
+ name
class
factory
:def
getperson
(self, name, gender)
:if gender == 『m':
return male(name)
if gender ==
'f':
return female(name)
將構建與表示分離,實現細節由子類決定,分為介面類,指揮者,建造者。
在這裡插入**片
Python設計模式 狀態設計模式
狀態設計模式的簡單示例 優缺點乙個物件可以基於其內部狀態封裝多個行為。狀態模式可以看作在執行時改變物件行為的一種方式。以收音機為例進行說明。收音機具有am fm 切換開關 兩種調頻方式和乙個掃瞄按鈕。因此根據收音機的基本狀態 am fm 當調諧到am或fm頻道時,掃瞄按鈕的行為就會動態的改變。con...
python設計模式 原形設計模式
一 什麼是原形設計模式 原型設計模式 prototype design pattern 幫助我們建立物件的轉殖,其最簡單的形式就是一 個clone 函式,接受乙個物件作為輸入引數,返回輸入物件的乙個副本。在python中,這可以 使用copy.deepcopy 函式來完成。二 應用案例 三 實現使用...
Python 設計模式
例項 類 類工廠 簡單來說就是把一些具有相同方法的類再進行封裝,抽象共同的方法以供呼叫.是工廠方法的高階版本.例項 類 類工廠 抽象工廠 這個python裡可以使用 property實現,就是當呼叫的時候才生成.builder模式主要用於構建乙個複雜的物件,但這個物件構建的演算法是穩定的,物件中的各...