重构 - if else

2017-10-12  本文已影响0人  weberZhou

相信所有的程序猿都经历过if else,甚至是很长很长的if else,在你写这些if else ,有没有感觉非常头疼,就像是小学生在抄课本,哈哈哈,现在就换一个思路,重写if else吧。

const rules = {

    x : function(a,b,c) {},

    y : function(a,b,c) {},

    z : function(a,b,c) {},

}

function demo(a,b,c) {

    const action = determineAction(a,b,c);

    return rules[action](a,b,c);

}

这里利用函数键值对的方法,来代替了if else的判断,整个逻辑也更加清晰,代码可读性和修改性也比较强了。

思考:能不能把determineAction也优化一下,看起来会更舒服呢。

const rules = [

    {

        match : function(a, b, c) {}

        action : function(a, b, c) {}

    },

    {

        match : function(a, b, c) {}

        action : function(a, b, c) {}

    },

    {

        match : function(a, b, c) {}

        action : function(a, b, c) {}

    }

 ]

function demo(a, b, c) {

    for(let i = 0; i < rules.length; i++) {

        if(rules[i].match(a, b, c)) {

           return rules[i].action(a, b, c);

        }

    }

}

上一篇下一篇

猜你喜欢

热点阅读