|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
产品经理:我需要重新发明轮子!
开发人员:安排:
DRY(Don’t Repeat Yourself)是架构设计中经常用到的一句话,这一原则应用非常广泛,在程序设计中同样会用到,不少代码或许不知不觉中违反了这一定义。
如《程序员修炼之道》一书中就有如下一题,重构下面一段代码
- if (state == TEXAS) {
- rate = TX_RATE;
- amt = base * TX_RATE;
- calc = 2 * basis(amt) + extra(amt) * 1.05;
- } else if ((state == OHIO || (state == MAINE)) {
- rate = ((state == OHIO) ? OH_RATE : ME_RATE);
- amt = base * rate;
- calc = 2 * basis(amt) + extra(amt) * 1.05;
- if (state == OHIO)
- points = 2;
- } else {
- rate = 1;
- amt = base;
- calc = 2 * basis(amt) + extra(amt) * 1.05;
- }
复制代码
可能很多人读此代码都有似曾相识之感,不错,我们身边不少程序员就是如此编程的。
这段代码就是由于太多Repeat造成罗嗦难懂,结构复杂,维护困难。大家可能都会迅速想到两点重构方法
但是这样就完美了吗?
4个if/else是否让人闻到一股不对劲的气味?
这段程序是否还是传统结构化编程思维?
if条件中state再增多程序会怎样?
此虽然是一段很短的代码,但是重构优化实际是无止境的! |
|