中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中使用職責鏈模式

發布時間:2021-04-02 16:29:03 來源:億速云 閱讀:159 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關怎么在Python中使用職責鏈模式,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

職責鏈模式(Chain Of Responsibility):使多個對象都有機會處理請求,從而避免發送者和接收者的耦合關系。將對象連成鏈并沿著這條鏈傳遞請求直到被處理

下面是一個設計模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——職責鏈模式
職責鏈模式(Chain Of Responsibility):使多個對象都有機會處理請求,從而避免發送者和接收者的耦合關系。將對象連成鏈并沿著這條鏈傳遞請求直到被處理
(在調用時要定義好哪個實例是哪個實例的職責上一級)請求沿著定義的鏈條傳遞給可以處理請求的對象
"""
#抽象一個處理類
class Handle(object):
  def __init__(self):
    self.successor = ''
  def setsuccessor(self, successor):
    self.successor = successor
  def handle_request(self,request):
    pass
# 具體處理者類1
class ConcreteHandle1(Handle):
  def handle_request(self,request):
    if request>0 and request<=10:
      print "ConcreteHandle1處理請求 ",request
    else:
      self.successor.handle_request(request)
# 具體處理者類2
class ConcreteHandle2(Handle):
  def handle_request(self,request):
    if request>10 and request<=20:
      print "ConcreteHandle2處理請求 ",request
    else:
      self.successor.handle_request(request)
if __name__=="__main__":
  c1 = ConcreteHandle1()
  c2 = ConcreteHandle2()
  c1.setsuccessor(c2)
  for i in range(6,15,2):
    c1.handle_request(i)

運行結果:

怎么在Python中使用職責鏈模式

上面類的設計如下圖:

怎么在Python中使用職責鏈模式

接收者和發送者都沒有對方的明確信息,且鏈中的對象自己并不知道鏈的結構,職責鏈可簡化對象的相互連接,他們僅需保持一個指向后繼者的引用,而不需要保持他所有候選接收者的引用,大大降低了耦合度,可以隨時增加或修改處理一個請求的結構

看完上述內容,你們對怎么在Python中使用職責鏈模式有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹东市| 中宁县| 车致| 丰城市| 榆社县| 穆棱市| 克东县| 分宜县| 周宁县| 通河县| 镇康县| 项城市| 太谷县| 阿拉善右旗| 普兰店市| 资讯| 湾仔区| 兴山县| 承德县| 高碑店市| 佛山市| 荃湾区| 镇赉县| 大化| 商河县| 南靖县| 子长县| 海兴县| 辽中县| 金坛市| 新乡市| 临泽县| 南木林县| 黄浦区| 惠安县| 老河口市| 高州市| 从化市| 乌拉特前旗| 民勤县| 北流市|