python设计模式大全
本文实例讲述了python常见的设计模式。分享给大家供大家参考,具体如下:
##!/usr/bin/envpython ##-*-coding:utf-8 # #classHttpBase: #defget(self): #psss #classHttp1(HttpBase): #defget(self): #print'http1' #classHttp2(HttpBase): #defget(self): #print'http2' # # #classBase: #def__init__(self): #self.httpobj=None #defhttp(self): #self.httpobj.get() #defcompute(self): #self.http() #self.show() ##虚函数 #defshow(self): #pass #defnotify(self,k): #print'notify',k # # ##桥接模式,通过A,B关联不同的http1和http2 #classBaseA(Base): #def__init__(self): #self.httpobj=Http1() #defnotify(self,k): #print'Anotify',k #defshow(self): #print'showa' # #classBaseB(Base): #def__init__(self): #self.httpobj=Http2() #defnotify(self,k): #print'Bnotify',k #defshow(self): #print'showb' # ##观测者模式 #classObserver: #def__init__(self): #self.listOB=[] #defregister(self,obj): #self.listOB.append(obj) #defnotify(self): #forobjinself.listOB: #obj.notify(len(self.listOB)) # ##适配器模式 #classB1: #defhttp(self): #BaseB().http() ##工厂模式 #classFactory: #defCreateA(self): #returnBaseA() #defCreateB(self): #returnBaseB() # # ##单例模式 #classLogger(object): #log=None #@staticmethod #defnew(): # #importthreading ##线程安全 #mylock=threading.RLock() #mylock.acquire() #ifnotLogger.log: #Logger.log=Logger() #mylock.release() # #returnLogger.log #defwrite(self,v): #print'Logger',v # #if__name__=="__main__": #a=Factory().CreateA() #b=Factory().CreateB() # #objS=Observer() #objS.register(a) #objS.register(b) # #a.compute() #b.compute() #objS.notify() # #b1=B1() #b1.http() # #Logger.new().log.write('v')
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。