真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解Python中的責(zé)任鏈設(shè)計模式-創(chuàng)新互聯(lián)

詳解Python 中的責(zé)任鏈設(shè)計模式?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)資陽,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

定義:

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

使用場景:

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

優(yōu)點:

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

代碼例子:

"""
責(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)


# 項目主管審批
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)

網(wǎng)站標(biāo)題:詳解Python中的責(zé)任鏈設(shè)計模式-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/pdhji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部