我听到果很多关于消除if-else语句的说法,很显然,if-else语句是不利于扩展的,但其他类似的
替代方式同样也是如此啊,比如在策略模式中使用map来替代if-else,如果要增加一种策略的话
,map还是需要增加一个语句,即map.put(key,strategy),也并不符合开闭原则啊,
那这段代码和if-else语句的本质区别在哪里???
路过的各位请赐教一下,真的很迷惑,我感觉很多时候if-else语句的替代跟脱裤子放屁一样,是在搞不通更优越的地方体现在哪里
主要是为了代码可读性以及分支优先度,比如if-else会从第一个if匹配至最后直到匹配成功,到这中间的个别匹配是多余的,然而用map则根据运算进行跳转,省略了匹配不必要的分支,这和switch转if-else类似,都是在考虑分支优先度区别不大但量多情况下的优化,而if-else就适用于少量细分优先度的分支情况。