2
我准备我的考试和我遇到一个奇怪上年实际考试问题跌跌撞撞:拆分临时变量重构实例
public int createUniqueCasenumber (GregorianCalendar date, int departmentID) {
int temp = 0;
temp = date.get(GregorianCalendar.DAY_OF_MONTH);
temp = temp * 100;
temp = temp + date.get(GregorianCalendar.MONTH);
temp = temp * 100;
temp = temp + date.get(GregorianCalendar.YEAR);
temp = temp * 100;
temp = temp + (date.get(GregorianCalendar.HOUR_OF_DAY) * departmentID);
return temp;
}
现在我明白了: 对这段代码进行拆分临时变量重构拆分临时变量重构作为一种情况,当一个临时变量用于不同的目的,我们只是“重命名”为两个不同的构思名称。 但是在这种情况下,我真的不能想到聪明的名字,这个临时变量的功能与循环收集变量非常相似。
远程接近所需要重构的唯一的事情是:
public int createUniqueCasenumber (GregorianCalendar date, int departmentID) {
int result= 0;
int firstStep = 100 * date.get(GregorianCalendar.DAY_OF_MONTH);
int secondStep = 100 * (firstStep + date.get(GregorianCalendar.MONTH));
int thirdStep = 100 * (secondStep + date.get(GregorianCalendar.YEAR));
result = thirdStep + (date.get(GregorianCalendar.HOUR_OF_DAY) * departmentID);
return result;
}
但是,为什么你这样做“在现实生活中”?还是有一些我看不到的深刻含义? 有什么想法?
预先感谢您:)
对不起,我在重新输入方法时实际犯了一个错误。每一步都依赖于以前的。看到更正。 所以问题仍然存在,审查员期望什么。 – Kezaer 2014-09-01 21:18:55