这篇文章主要介绍“怎么干掉if else”,在日常操作中,相信很多人在怎么干掉if else问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么干掉if else”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!责任链通用实现现在我就默认大家都知道什么是责任链模式了,如果还对这个不懂的同学,可以先看看我之前的文章。首先,我们会有一个业务执行器接口,所有的业务实现都会实现该接口,这意味着上图的逻辑A、B、C都会实现这个接口可以看到的是接口异常的简单,只有一个process处理的方法,方法接收的是ProcessContext为什么process方法需要接收ProcessContext?很简单,我们在处理逻辑A、B、C的时候,可能逻辑B需要依赖逻辑A的处理结果。于是我们就需要有一个载体把这些给记录下来。所以,我们就有了ProcessContext,它代表的是责任链的上下文。现在责任链的执行器和责任链所涉及的上下文都已经有了,这意味着我们已经有了责任链最主要的抽象了。接下来就是我们需要把链给串起来,于是我们需要一个模板,其实我们做的就是用一个List来把BusinessProcess的子类给串起来。OK,现在我们已经把责任链的整块给抽象好了,接下来就是暴露流程控制器去执行这个责任链:我们可以看到的是在ProcessController执行链通用的流程控制器上会有一个Map去存储多个责任链的模板,这样做的好处就是:ProcessController这个流程控制器可以根据code支持多个责任链执行。接下来就是我们有具体的BusinessProcess去加入到ProcessTemplate的链上,然后调用ProcessController的方法去执行整一条推送链。一般我们在XML注入就好了,比如说现在我们有两个BusinessProcess的实现,分别是白名单和发消息的逻辑:然后我们把上面两个处理器添加到ProcessTemplat免费云主机、域名e的模板上,把ProcessTemplate添加到ProcessController的Map上:然后我们在接口里边执行这个责任链:我做了这么大的一套东西实现了什么功能?其实就一个if逻辑:下面我们还是来看看效果,从功能上我们可以发现,只要我们输入的不是「3y」,那就会打印消息上面的逻辑,实际上就是一套通用的责任链的代码,最核心的其实就是四个角色:「业务抽象接口」、「执行过程中的上下文」、「将业务实现类串起来」和「一个通用的控制器执行责任链」如果没看懂的同学,三歪建议再对比一下代码看看,责任链这种设计模式是非常好用,在项目里边也是非常常见的。只要把BusinessProcess/ProcessContext/ProcessTemplate/ProcessController的代码给拷过去自己的项目中,这就能帮你把原有的if else逻辑给干掉。Pipeline不知道大家看过Pipeline这个词了没,在学Redis的时候可能会见过,在Redis里边我们会用Pipeline去做批量的操作。抛开Redis的Pipeline,但从宏观的角度上来,Pipeline其实是一种架构思想。同时我也认为它是「责任链模式」的实现之一。下面来看看我这边的一个Pipeline实现的架构图:到此,关于“怎么干掉if else”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!
小编给大家分享一下python如何实现可链接迭代器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可链接迭代器以上是“python如何实现可链接迭代器”这篇文章的所有内容,感谢各位的阅…