def function_1(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '1'])
def function_2(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '2'])
def function_3(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '3'])
def function_4(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '4'])
def main_function(input_string):
if "1" in input_string:
input_string = function_1(input_string)
if "2" in input_string:
input_string = function_2(input_string)
if "3" in input_string:
input_string = function_3(input_string)
if "4" in input_string:
input_string = function_4(input_string)
if __name__ == '__main__':
main_function("1221345439")
# 实现责任链
class CatchAll(object):
def __init__(self):
self.next_to_excute = None
def excute(self, request):
print(request)
class Function1Class(object):
def __init__(self):
self.next_to_excute = CatchAll()
def excute(self, request):
if "1" in request:
print("Executing Type Function1Class with request [{}]".format(request))
request = ''.join([x for x in request if x != '1'])
self.next_to_excute.excute(request)
class Function2Class(object):
def __init__(self):
self.next_to_excute = CatchAll()
def excute(self, request):
if "2" in request:
print("Executing Type Function2Class with request [{}]".format(request))
request = ''.join([x for x in request if x != '2'])
self.next_to_excute.excute(request)
class Function3Class(object):
def __init__(self):
self.next_to_excute = CatchAll()
def excute(self, request):
if "3" in request:
print("Executing Type Function3Class with request [{}]".format(request))
request = ''.join([x for x in request if x != '3'])
self.next_to_excute.excute(request)
class Function4Class(object):
def __init__(self):
self.next_to_excute = CatchAll()
def excute(self, request):
if "4" in request:
print("Executing Type Function4Class with request [{}]".format(request))
request = ''.join([x for x in request if x != '4'])
self.next_to_excute.excute(request)
def main_function(head, request):
head.excute(request)
if __name__ == '__main__':
hd = Function1Class()
current = hd
current.next_to_excute = Function2Class()
current = current.next_to_excute
current.next_to_excute = Function3Class()
current = current.next_to_excute
current.next_to_excute = Function4Class()
main_function(hd, "12214549")
# 责任链的另一种实现
class Disapatcher(object):
def __init__(self, handlers=[]):
self.handlers = handlers
def handle_request(self, request):
for handle in self.handlers:
request = handle(request)
return request
def function_1(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '1'])
def function_2(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '2'])
def function_3(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '3'])
def function_4(in_string):
print(in_string)
return ''.join([x for x in in_string if x != '4'])
def main1(request):
dispatcher = Disapatcher([function_1, function_2, function_3, function_4])
dispatcher.handle_request(request)
if __name__ == '__main__':
main1("1221345439")
# 责任链的简单实现
class EndHandler(object):
def __init__(self):
pass
def handle_request(self, request):
pass
class Hander1(object):
def __init__(self):
self.next_handler = EndHandler()
def handler_request(self, requset):
self.next_handler.handle_request(requset)
def main(requset):
concrete_handler = Hander1()
concrete_handler.handler_request(requset)
if __name__ == '__main__':
main('requset')