python設(shè)計(jì)模式大全
本文實(shí)例講述了python常見的設(shè)計(jì)模式。分享給大家供大家參考,具體如下:
# #!/usr/bin/env python # # -*- coding:utf-8 # # class HttpBase: # def get(self): # psss # class Http1(HttpBase): # def get(self): # print 'http1' # class Http2(HttpBase): # def get(self): # print 'http2' # # # class Base: # def __init__(self): # self.httpobj = None # def http(self): # self.httpobj.get() # def compute(self): # self.http() # self.show() # #虛函數(shù) # def show(self): # pass # def notify(self, k): # print 'notify', k # # # #橋接模式,通過A,B 關(guān)聯(lián)不同的http1和http2 # class BaseA(Base): # def __init__(self): # self.httpobj = Http1() # def notify(self, k): # print 'A notify', k # def show(self): # print 'show a' # # class BaseB(Base): # def __init__(self): # self.httpobj = Http2() # def notify(self, k): # print 'B notify', k # def show(self): # print 'show b' # # #觀測者模式 # class Observer: # def __init__(self): # self.listOB = [] # def register(self, obj): # self.listOB.append(obj) # def notify(self): # for obj in self.listOB: # obj.notify(len(self.listOB)) # # #適配器模式 # class B1: # def http(self): # BaseB().http() # #工廠模式 # class Factory: # def CreateA(self): # return BaseA() # def CreateB(self): # return BaseB() # # # #單例模式 # class Logger(object): # log = None # @staticmethod # def new(): # # import threading # #線程安全 # mylock = threading.RLock() # mylock.acquire() # if not Logger.log: # Logger.log = Logger() # mylock.release() # # return Logger.log # def write(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')
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python使用Pyinstaller如何打包整個項(xiàng)目
這篇文章主要介紹了python使用Pyinstaller如何打包整個項(xiàng)目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖
這篇文章主要介紹了python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖,文章主要繪制折線圖、散點(diǎn)圖、直方圖、餅圖等需要的小伙伴可以參考一下文章具體內(nèi)容2022-06-06Python面向?qū)ο蟪绦蛟O(shè)計(jì)之靜態(tài)方法、類方法、屬性方法原理與用法分析
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之靜態(tài)方法、類方法、屬性方法,結(jié)合實(shí)例形式分析了Python靜態(tài)方法、類方法、屬性方法相關(guān)概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-03-03Python爬蟲自動化爬取b站實(shí)時彈幕實(shí)例方法
在本篇文章里小編給大家整理的是一篇關(guān)于Python爬蟲自動化爬取b站實(shí)時彈幕實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)下。2021-01-01Python爬蟲請求模塊Urllib及Requests庫安裝使用教程
requests和urllib都是Python中常用的HTTP請求庫,使用時需要根據(jù)實(shí)際情況選擇,如果要求使用簡單、功能完善、性能高的HTTP請求庫,可以選擇requests,如果需要兼容性更好、功能更加靈活的HTTP請求庫,可以選擇urllib2023-11-11小議Python中自定義函數(shù)的可變參數(shù)的使用及注意點(diǎn)
Python函數(shù)的默認(rèn)值參數(shù)只會在函數(shù)定義處被解析一次,以后再使用時這個默認(rèn)值還是一樣,這在與可變參數(shù)共同使用時便會產(chǎn)生困惑,下面就來小議Python中自定義函數(shù)的可變參數(shù)的使用及注意點(diǎn)2016-06-06