您好,登錄后才能下訂單哦!
工廠模式
'工廠模式' class msg(object): def mail(self,msg): pass def sms(self,msg): pass def weixin(self,msg): pass def sender(self,msg,msg_type): if msg_type == 'sms': self.sms(msg) elif msg_type == 'mail': self.mail(msg) import statsout def output(data, format="text"): output_function = getattr(statsout, "output_%s" %format) return output_function(data)
單立模式
#!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'gaogd' ''' 單立模式 ''' def singletion(cls): instances = {} def warpper(*args,**kwargs): if cls not in instances: instances[cls] = cls(*args,**kwargs) return instances[cls] return warpper @singletion class Myclass(object): def __init__(self,n): self.n = n c = Myclass('10') c2 = Myclass('20') ## 裝飾器的作用: @singletion 《=》 Myclass = singletion(Myclass) # print '--->',c.n ,c2.n #方法2,實現(xiàn)__new__方法 #并在將一個類的實例綁定到類變量_instance上, #如果cls._instance為None說明該類還沒有實例化過,實例化該類,并返回 #如果cls._instance不為None,直接返回cls._instance class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): ##如果cls中不包含_instance方法,就執(zhí)行下面 orig = super(Singleton, cls) ##繼承原始的類 cls._instance = orig.__new__(cls, *args, **kw) ##在這個類上面添加_instance方法 return cls._instance ##返回這個新類 class MyClass1(Singleton): a = 1 one = MyClass1() two = MyClass1() two.a = 5 print one.a,two.a ### __new__()方法負(fù)責(zé)生成__init__()方法的
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。