責任chain模式

2021-10-01 04:51:30 字數 1178 閱讀 5745

class basehandler:

# 它起到了鏈的作用

def successor(self, successor):

self.successor = successor

class scorehandler1(basehandler):

def handle(self, request):

if request > 90 and request <= 100:

return "a+"

else:

# 否則傳給下乙個鏈,下同,但是我是要return回結果的

return self.successor.handle(request)

class scorehandler2(basehandler):

def handle(self, request):

if request > 80 and request <= 90:

return "a"

else:

return self.successor.handle(request)

class scorehandler3(basehandler):

def handle(self, request):

if request > 70 and request <= 80:

return "b+"

else:

return "unsatisfactory result"

class client:

def __init__(self):

h1 = scorehandler1()

h2 = scorehandler2()

h3 = scorehandler3()

# 注意這個順序,h3包含乙個類似於default結果的東西,是要放在最後的,其他的順序是無所謂的,比如h1和h2

h1.successor(h2)

h2.successor(h3)

requests =

for name, score in requests.iteritems():

print '{} is {}'.format(name, h1.handle(score))

if __name__== "__main__":

client = client()

責任鏈模式(chain) 員工請假

定義 責任鏈模式是物件的行為模式,在責任鏈模式裡,很多物件由每乙個物件對其下家的引用而鏈結起來形成一條鏈,請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。發出這個請求的客戶端並不知道哪乙個物件處理此請求,這使得系統在不影響客戶端的情況下動態的重新組織和分配責任。角色列表 抽象處理者角色 ha...

python 設計模式 chain鏈模式

鏈模式chain,可以將乙個處理流程串成乙個鏈,每一環包括三部分 1 初始化中,需要指向傳入的類,2 有判斷呼叫傳入類的method 3 有自己這一環需要做的處理 abstractmethon 還有乙個約束,應該是終止環 class 這一環僅有第三項,需要做的處理,表明沒有找到合適的環。示例 cla...

責任鏈模式

責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。舉個例子。你到銀行去辦理業務,只是簡單的存個錢,也許atm就解決你的問題。如果你是為了交費...