亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python設(shè)計(jì)模式行為型責(zé)任鏈模式

 更新時(shí)間:2022年02月15日 11:11:44   作者:范桂颶  
這篇文章主要介紹了Python設(shè)計(jì)模式行為型責(zé)任鏈模式,責(zé)任鏈模式將能處理請(qǐng)求的對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理請(qǐng)求為止,避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,下圍繞改內(nèi)容介紹具有一點(diǎn)的參考價(jià)值,需要的朋友可以參考下

一、責(zé)任鏈模式

責(zé)任鏈模式,將多個(gè)處理方法連接成一條鏈條,請(qǐng)求將在這條鏈條上流動(dòng)直到該鏈條中有一個(gè)節(jié)點(diǎn)可以處理該請(qǐng)求。通常這條鏈條是一個(gè)對(duì)象包含對(duì)另一個(gè)對(duì)象的引用而形成鏈條,每個(gè)節(jié)點(diǎn)有對(duì)請(qǐng)求的條件,當(dāng)不滿足條件將傳遞給下一個(gè)節(jié)點(diǎn)處理。

責(zé)任鏈模式有幾個(gè)要點(diǎn):

  • 一個(gè)對(duì)象中含有另一個(gè)對(duì)象的引用以此類推形成鏈條。
  • 每個(gè)對(duì)象中應(yīng)該有明確的責(zé)任劃分,即處理請(qǐng)求的條件。
  • 鏈條的最后一節(jié)應(yīng)該設(shè)計(jì)成通用請(qǐng)求處理,以免出現(xiàn)漏洞。
  • 請(qǐng)求應(yīng)該傳入鏈條的頭部

二、應(yīng)用場(chǎng)景

三、代碼示例

實(shí)體角色:

  • 抽象處理者(Handler)
  • 具體處理者(Concrete Handler)
  • 客戶端(Client)
import abc


# 抽象處理者
class Handler(metaclass=abc.ABCMeta):
? ? @abc.abstractmethod
? ? def handle(self, day):
? ? ? ? pass


# 具體處理者,作為鏈條節(jié)點(diǎn)之一。
class GeneralManager(Handler):
? ? def handle(self, day):
? ? ? ? if day <= 10:
? ? ? ? ? ? print(f"總經(jīng)理準(zhǔn)假{day}天")
? ? ? ? else:
? ? ? ? ? ? print("休假太長(zhǎng),不予準(zhǔn)假!")


# 具體處理者,作為鏈條節(jié)點(diǎn)之一。
class DivisionManager(Handler):
? ? def __init__(self):
? ? ? ? self.next = GeneralManager() ?# 鏈接到下一級(jí)

? ? def handle(self, day):
? ? ? ? if day <= 5:
? ? ? ? ? ? print(f"部門經(jīng)理準(zhǔn)假{day}天")
? ? ? ? else:
? ? ? ? ? ? print("部門經(jīng)理準(zhǔn)假職級(jí)不足")
? ? ? ? ? ? self.next.handle(day)


# 具體處理者,作為鏈條節(jié)點(diǎn)之一。
class ProjectManager(Handler):
? ? def __init__(self):
? ? ? ? self.next = DivisionManager() ?# 鏈接到下一級(jí)

? ? def handle(self, day):
? ? ? ? if day <= 3:
? ? ? ? ? ? print(f"項(xiàng)目經(jīng)理準(zhǔn)假{day}天")
? ? ? ? else:
? ? ? ? ? ? print("項(xiàng)目經(jīng)理準(zhǔn)假職級(jí)不足")
? ? ? ? ? ? self.next.handle(day)


if __name__ == "__main__":
? ? handler = ProjectManager()
? ? handler.handle(4)

到此這篇關(guān)于Python設(shè)計(jì)模式行為型責(zé)任鏈模式的文章就介紹到這了,更多相關(guān)Python責(zé)任鏈模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論