欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年09月11日 11:31:31   作者:大飛  
這篇文章主要介紹了Python 責(zé)任鏈設(shè)計(jì)模式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python 設(shè)計(jì)模式,感興趣的朋友可以了解下

定義:

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

使用場景:

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

優(yōu)點(diǎn):

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

代碼例子:

"""
責(zé)任鏈模式
"""
from abc import abstractmethod, ABCMeta


class 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)


# 項(xiàng)目主管審批
class ProjectHandler(Handler):
  def __init__(self):
    self.upHandler = DepartmentHandler()

  def handler_leave(self, day):
    if day <= 3:
      print('項(xiàng)目主管批準(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è)計(jì)模式的詳細(xì)內(nèi)容,更多關(guān)于Python 責(zé)任鏈設(shè)計(jì)模式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python2中的中文亂碼

    python2中的中文亂碼

    這篇文章主要介紹了python2中的中文亂碼問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python利用PyQT5設(shè)置鬧鐘功能

    Python利用PyQT5設(shè)置鬧鐘功能

    這篇文章主要介紹了通過PyQt5實(shí)現(xiàn)設(shè)置一個(gè)小鬧鐘的功能,到了設(shè)置的時(shí)間后可以響起一段音樂來提醒。感興趣的小伙伴可以跟隨小編一起試一試
    2022-01-01
  • Python中的幾種矩陣乘法(小結(jié))

    Python中的幾種矩陣乘法(小結(jié))

    這篇文章主要介紹了Python中的幾種矩陣乘法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 基于wxPython的GUI實(shí)現(xiàn)輸入對話框(2)

    基于wxPython的GUI實(shí)現(xiàn)輸入對話框(2)

    這篇文章主要為大家詳細(xì)介紹了基于wxPython的GUI實(shí)現(xiàn)輸入對話框的第二篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python中關(guān)于使用模塊的基礎(chǔ)知識

    Python中關(guān)于使用模塊的基礎(chǔ)知識

    這篇文章主要介紹了Python中關(guān)于使用模塊的基礎(chǔ)知識,是Python入門的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • python格式化輸出實(shí)例(居中、靠右及靠左對齊)

    python格式化輸出實(shí)例(居中、靠右及靠左對齊)

    所謂格式化輸出就是數(shù)據(jù)按照某種特殊的格式和要求進(jìn)行輸出,下面這篇文章主要給大家介紹了關(guān)于python格式化輸出(居中、靠右及靠左對齊)的相關(guān)資料,文中介紹了format方式、其他擴(kuò)展寫法以及'%'方式,需要的朋友可以參考下
    2022-04-04
  • Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解教程,需要的朋友可以參考下。
    2009-11-11
  • Python中的Classes和Metaclasses詳解

    Python中的Classes和Metaclasses詳解

    這篇文章主要介紹了Python中的Classes和Metaclasses詳解,屬于基礎(chǔ)知識中類與對象的概念部分的深入,需要的朋友可以參考下
    2015-04-04
  • Python函數(shù)嵌套實(shí)例

    Python函數(shù)嵌套實(shí)例

    這篇文章主要介紹了Python函數(shù)嵌套實(shí)例,本文用實(shí)例講解了Python中的函數(shù)嵌套特性,需要的朋友可以參考下
    2014-09-09
  • 詳解django使用include無法跳轉(zhuǎn)的解決方法

    詳解django使用include無法跳轉(zhuǎn)的解決方法

    這篇文章主要介紹了詳解django使用include無法跳轉(zhuǎn)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評論