23種設計模式之python實現 單例模式

2021-06-21 08:10:53 字數 647 閱讀 3632

好了,今天就先實現這幾個模式吧。

#理解

#世界上有一些東西是唯一的,比如地球,或者如果乙個辦公室只用一台印表機,那這台印表機也是唯一的

#例子:實現只有乙個地球

class singleton(object):

def __new__(cls,*args,**kw):

if not hasattr(cls, '_instance'):

old=super(singleton,cls)

cls._instance=old.__new__(cls,*args,**kw)

return cls._instance

class earth(singleton):

sharp='ball'

if __name__=="__main__":

earth1=earth()

print earth1.sharp

earth1.sharp='circle'

earth2=earth()

print earth2.sharp

執行的結果,如圖

23種設計模式之 工廠設計模式

前言 記得大二時上過一門設計模式的課,當時聽的那叫乙個懵逼。如今工作半年了,想把東西再撿起來,順便記錄一下。工廠模式是平時接觸的多一點的,就從工廠模式開始吧 什麼是工廠設計模式?工廠設計模式,顧名思義,就是用來生產物件的,是一種建立型設計模式。在物件導向語言中,萬物皆物件,這些物件都需要建立,如果建...

23種設計模式之命令模式

定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下invoker類和r...

23種設計模式之策略模式

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式,對照類圖可以看到,策略模...