91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在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

明光市| 磴口县| 平顶山市| 铜陵市| 龙井市| 祁连县| 红原县| 理塘县| 峨边| 利津县| 阜阳市| 金平| 武夷山市| 高州市| 革吉县| 甘肃省| 宝丰县| 汝南县| 瓦房店市| 乐昌市| 留坝县| 宁德市| 桐乡市| 景德镇市| 洪湖市| 辽中县| 大安市| 武穴市| 湖州市| 青龙| 会昌县| 乌兰浩特市| 若羌县| 简阳市| 河曲县| 彭州市| 应城市| 黔西| 延津县| 融水| 临城县|