久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

淺析Python 責(zé)任鏈設(shè)計模式

瀏覽:4日期:2022-07-11 14:42:52

定義:

使多個對象都有機會處理請求,從而避免請求的發(fā)送者和接受者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求直到有一個對象處理它為止

使用場景:

有多個對象可以處理一個請求,哪個對象處理由時間運行時決定。在不明確接受者的情況下,向多個對象中的一個提交一個請求

優(yōu)點:

降低耦合度:一個對象無需知道是其他哪一個對象處理其請求

代碼例子:

'''責(zé)任鏈模式'''from abc import abstractmethod, ABCMetaclass Handler(metaclass=ABCMeta): @abstractmethod def handler_leave(self, day): pass# 總經(jīng)理審批class GenaralHandler(Handler): def handler_leave(self, day): if day <= 10: print(’總經(jīng)理批準(zhǔn)你%s天假,好好去玩吧’ % day) else: print(’你干脆辭職了吧’)# 部門經(jīng)理審批class DepartmentHandler(Handler): def __init__(self): self.upHandler = GenaralHandler() def handler_leave(self, day): if day <= 7: print(’部門經(jīng)理批準(zhǔn)你%s天假,好好去玩吧’ % day) else: print(’你請假超過七天,我無權(quán)受理,你去找總經(jīng)理吧’) self.upHandler.handler_leave(day)# 項目主管審批class ProjectHandler(Handler): def __init__(self): self.upHandler = DepartmentHandler() def handler_leave(self, day): if day <= 3: print(’項目主管批準(zhǔn)你%s天假,好好去玩吧’ % day) else: print(’你請假超過三天,我無權(quán)受理,你去找部門經(jīng)理審批吧’) self.upHandler.handler_leave(day)if __name__ == ’__main__’: h = ProjectHandler(); h.handler_leave(5)

輸出結(jié)果:

你請假超過三天,我無權(quán)受理,你去找部門經(jīng)理審批吧

部門經(jīng)理批準(zhǔn)你5天假,好好去玩吧

以上就是淺析Python 責(zé)任鏈設(shè)計模式的詳細(xì)內(nèi)容,更多關(guān)于Python 責(zé)任鏈設(shè)計模式的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 大田县| 昂仁县| 古田县| 闵行区| 土默特左旗| 牟定县| 尖扎县| 准格尔旗| 绥芬河市| 牟定县| 胶州市| 水城县| 黔江区| 新竹县| 萝北县| 香河县| 福安市| 榆社县| 芒康县| 清涧县| 房产| 沿河| 大丰市| 绵阳市| 策勒县| 都昌县| 同江市| 缙云县| 迭部县| 永和县| 嘉定区| 大足县| 廉江市| 左云县| 六盘水市| 米易县| 清新县| 额济纳旗| 安塞县| 布尔津县| 洪洞县|