python实现职责链模式CoR
#!/usr/bin/env python# -*- coding: utf-8 -*-class HandleBase():def __init__(self):self.m_successor = Nonedef SetSuccessor(self, successor):self.m_successor = successor...
·
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class HandleBase():
def __init__(self):
self.m_successor = None
def SetSuccessor(self, successor):
self.m_successor = successor
def CommonProcess(self, request):
pass
def HandleRequest(self, request):
self.CommonProcess(request)
if self.m_successor is None:
print ('end of CoR')
return
else:
self.m_successor.HandleRequest(request)
class TestHandle1(HandleBase):
def CommonProcess(self, request):
print ('testHandle1: %d'%request)
class TestHandle2(HandleBase):
def CommonProcess(self, request):
print ('testHandle2: %d'%request)
class HandleManager(object):
def __init__(self):
self.m_header = None
def RegisterHandler(self, handler):
if self.m_header is None:
self.m_header = handler
else:
self.m_header.SetSuccessor(handler)
def HandleRequest(self, request):
if not self.m_header is None:
self.m_header.HandleRequest(request)
if __name__=="__main__":
hm = HandleManager()
hm.RegisterHandler(TestHandle1())
hm.RegisterHandler(TestHandle2())
for i in range(10):
hm.HandleRequest(i)
更多推荐
所有评论(0)