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
推荐阅读
- 无话不谈|卧槽!我随便写的一个API竟获得 2.5 亿的访问量
- 前饿了么CTO张雪峰从阿里离职 2020餐饮外卖行业现状及发展前景趋势分析研究报告
- 空心|记 Arthas 实现一次 CPU 排查与代码热更新
- 滴滴回应AI部门负责人离职:系个人原因,CTO张博将兼任
- 路飞写代码|59连问仍需联合调查,贝索斯的亚马逊被针对?,百亿订单成泡影
- 楚天都市报|萌娃委屈大哭,发出灵魂拷问“怎么给我起个这么难写的名字”
- 薄情先生|你所需要知道的代码整洁之道
- 程序员|程序员:代码全部替换成中文,你能接受吗?
- 落夜沉沉|写的很烂大臣难懂,但有一首让大臣拍手叫好,乾隆喜欢写诗
- 小镇的夕阳|修改硬盘MBR代码,用1024字节实现一个操作系统启动管理器