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就解決你的問題。如果你是為了交費...