平时为了业务实现简单,难免写一些if else语句,例如常年堆积起来的业务逻辑代码如下,可以考虑重构使得结构更为清晰:
#define SHANGHAI 100
#define BEIJING 101
#define SHENZHEN 102
#define SHANGHAI_RATE 1.01
#define BEIJING_RATE 1.02
#define SHENZHEN_RATE 1.01
void oldFunction(int base_money,int state){
int rate;
int money;
if(state == SHANGHAI){
rate = SHANGHAI_RATE;
money = rate * base_money;
}
else if(state == BEIJING || state == SHENZHEN){
rate = (state == SHENZHEN)?SHENZHEN_RATE:BEIJING_RATE;
money = rate * base_money;
}
else{
rate = 1;
money = base_money;
}
}
功能很简单,就是计算各个城市的某个比例值。可以重构为下面的代码,简洁明了
enum Province{
SHANGHAI = 100,
BEIJING,
SHENZHEN
};
double lookup_rate(int province_id){
//...
}
void newFunction(int base_money,int state){
int rate;
int money;
rate = lookup_rate(state);
money = rate * base_money;
}
分享到:
相关推荐
本代码是《重构 改善既有代码的设计》书中的第一个案例,用于影片出租点用的程序,对于原始代码的几次重构
面向对象——代码重构源码(包含重构前后代码),是对《重构——改善既有代码的设计》一书中第一章节实例的模拟实现,实例是为影片出租店所用的租赁程序。
开发人员为何不愿重构程序 A Reality Check(Revisited) 再谈现实的检验 Resources and References for Refactoring 重构的资源和参考文献 Implications Regarding Software Reuse and Technology ...
重构只是对程序内部结构进行调整,让代码更加容易理解,然后更容易维护. 本书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。 章节列表如下: 目录 第...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的...
本质上说,重构就是——在代码写好之后改进它的设计。 在代码写好之后改进它的设计?这种说法有点奇怪。按照目前对软件开发的理解,我们相信应该先设计而后编码(coding),首先得有一个良好的设计,然后才能开始...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发...
重构 侯捷 重构改善既有代码的设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。 在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发...
作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的...
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。 当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发...
重构-改善既有代码的设计 作者:Martin Fowler,Kent Beck,John Brant ,William Opdyke ,Don Roberts 翻译:侯捷、熊节 软件工程领域的超级经典巨著,与另壹巨著《设计模式》并称"软工双雄",全美销量超过...
重构-改善既有代码的设计(中文版) 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。 在本书中,作者Martin Fowler充分展示了何处可能需要重构,...