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程序设计有所帮助。