用设计模式重构那些烂代码
烂代码的表现形式有:变量命名不符合变量所代表的含义、if-else嵌套太深、一个方法几百行、一个类干了太多的事情、用面向过程的思维编写面向对象的程序……
重构分为小重构和大重构,小重构可以按照《代码整洁之道》中的那些小技巧,比如给变量起一个好名字,抽取方法等等来重构;大重构往往要运用设计原则与设计模式。
设计模式是前辈大佬们总结出来的常用的编码套路,运用他们之后可以让自己的程序可扩展性更强,应对不断变化的需求和不断新增的需求可以游刃有余。
设计模式分类
功能上分为创建型、结构型、行为型。方式上分为类模式、对象模式。
用策略模式干掉if-else
我们平常的业务代码中最常见的坏代码就是if-else了,比如不同商品类型有不同的优惠计算方式,如直降型、满减型、满赠型、加价购型、限时购型等等。如果每一个需要区分优惠类型的地方都用if-else来区分不同类型的计算方式,当新增一种优惠类型的时候又要把每个地方都打开增加一个else,这明显违反了开闭原则。可以通过策略模式,定义一个接口,接口中有一个计算方法,每种优惠类型实现这个接口中的计算方法。然后客户端代码维护了一个优惠类型到优惠计算策略的map,这样新增优惠类型的时候只需要在客户端的map里面增加一个Entry即可。计算的时候直接从map中根据优惠类型获取计算策略。
版权声明: 本文为 InfoQ 作者【鸠摩智】的原创文章。
原文链接:【http://xie.infoq.cn/article/dc6e3c4dfbf2c0a27b80579e2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论