开篇:有一阵子没接触代码了,最近在找工作在疯狂复习,复习了一下设计模式,因为项目以前用到责任链模式(当时不是我写的),所以这次复习就特意看了一下,然后看到了一道题
问题:从字典里面选出符合以下三个条件的字符串,(1)包含a或者b或者cd (2)以end结尾 (3)长度大于
正常情况3个if判断搞定的超级简单问题吧
如果(1)(2)(3)是非常复杂的判断 如果字段一些字符串要匹配(1)(3),一些匹配(2)(3)等规则 这时候就可以用到责任链模式了
什么是责任链模式?
这里不多余累赘了,就是红楼梦中的"击鼓传花",具体详见菜鸟教程
https://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html
思路
实际就是讲题目要求的三种行为统一抽象成为对象,3个行为引用共同实现一个抽象类,抽象类里包含下一个行为的引用(链表的下一个节点)