CTO写的代码,真是绝了( 二 )


public static void main(String[] args) { String sign = ''TOUTIAO''; ChannelRuleEnum channelRule = ChannelRuleEnum.match(sign); GeneralChannelRule rule = channelRule.channel; rule.process(sign); }解析:通过使用枚举类 , 在枚举中将 key 与规则具体实现进行绑定 。
通过改变:

  • 可以减少 if-else 使得代码更加优雅 。
  • 如果需要新增渠道 , 我们只需要在编写具体规则实现类并继承 GeneralChannelRule 抽象类 , 并在枚举类中新增的枚举 , 而不需要改动到原先的任何代码 。 这符合了开发封闭原则 。
最后
以上是通过枚举来巧妙干掉 if-else 的方案 , 对于减少 if-else 还有很多有趣的解决方案(如:状态设计模式等) , 感兴趣的朋友去查阅相关的资料 。
作者:聚 IT
编辑:陶家龙
出处:toutiao.com/i6847406631983153672


推荐阅读