敏捷技巧之一:移除重复代码

最近看了一下《essential skills for agile development》边看边做点笔记。先看看下面这个类:

BookRentals 类

代码中两个成员函数getCustomerName和deleteRental中,for循环代码重复,试想一下,BookRental类中,rentals为Vector类型,如果将它改为数组,就必须所有包含rentals.size()改为rentals.length.

重构一下变成:

重构后的BookRentals 类
RentalNotFoundException 类


我们可以看到,重构后,即使rentals改为数组,只需要在getRentalIdxById中把rentals.elementAt(i)改为rentals[i]即可。

 

看看下面几个例子:

1. Organization类

Organization 类

显然这不是一个有效的设计,这个类只封装了一些基本的属性,而且这些属性中,存在大多的重复代码,我们可以将它剥离出来,变成如下形式:

重构Organization 类

如果还觉得不爽,可以将名字封装成一个类:

重构姓名类


 

记住:万物皆对象!!!

posted @ 2010-12-03 19:41  Jayce AuYeung  阅读(273)  评论(0编辑  收藏  举报