【菠萝】责任链模式

120 阅读1分钟

什么是责任链模式

对于一个请求,为了让多个对象都有机会处理改请求。将这些对象都穿成一条链,依次传递,直到某一个对象,处理了改请求为止。

代码实现

image.png

第一步 自定义一个抽象类处理器

image.png

image.png

image.png

第二步 实现3个处理器,去继承父类handler

可以注意到,其实除了最后一次的hanler,之前的每次handler处理完,都会交给下一个handler去处理

image.png

最后一步的代码测试,发现成功实现,细节上就是注意 给第一个handler设置的下一个handler为secondHandler,SecondHandler设置的是LastHandler。注意不要设置错,就可以了

使用场景

如果代码中有大量的if else判断的情况,可以考虑通过责任链模式来进行优化,当然具体的业务场景需要具体分析,活学活用,才是王道