好了,今天就先實現這幾個模式吧。
#理解
#世界上有一些東西是唯一的,比如地球,或者如果乙個辦公室只用一台印表機,那這台印表機也是唯一的
#例子:實現只有乙個地球
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種設計模式之策略模式
定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式,對照類圖可以看到,策略模...