前言
前面的文章咱们通过表驱动法、策略模式两种方法替换掉JAVA代码里的if...else和switch...case,今天继续介绍第三种方法:责任链设计模式。在WEB应用中,大名鼎鼎的filter链就是责任链模式的具体实现。在笔者一个实际项目中就用到责任链模式,来看看吧。
场景
所有移动端app开发,都会面临一个问题:升级!后台在开发升级接口时,会判断很多逻辑,比如版本是否在升级的范围内、操作系统是否符合、内存、芯片类型、地区、根据ip灰度升级等,以上任何一个不符合就不升级。
还有一种场景,视频播放鉴权。比如爱奇艺、优酷、腾讯等公司的视频播放需要鉴权的,比如判断视频是否收费、判断该地域是否能播放、如果视频支持4K当前设备是否支持等。
以上两种场景很多人,拿到需求第一步肯定想到if...else判断。比如下面代码:
//升级判断
public boolean upgrade() {
try {
if (!版本在范围内) {
return false;
}
if(!操作系统符合){
return false;
}
...
} catch (Exception e) {
log.error(&#