Java代码重构之提取方法
Java代码重构之提取方法是指将一部分代码逻辑抽取出来作为一个独立的方法,以提高代码的可读性、可维护性和重用性。下面是一个例子来说明什么情况下需要进行方法提取重构,以及重构后的代码示例。
假设我们有一个计算员工年度薪水的程序,其中包含以下代码片段:
double calculateYearlySalary(String name, double monthlySalary) {
double yearlySalary;
if (monthlySalary < 0) {
throw new IllegalArgumentException("Monthly salary cannot be negative.");
}
if (name == null || name.isEmpty()) {
throw new IllegalArgumentException("Name cannot be null or empty.");
}
// 假设还有其他的逻辑
yearlySalary = monthlySalary * 12;
return yearlySalary;
}
上述代码在计算年度薪水之前进行了参数的合法性检查,并且还有一些其他的逻辑,如计算税金等等。然而,我们发现参数检查的逻辑(if语句)占据了大量的代码行数,并且在多处重复出现,导致代码重复和冗长。这个时候就可以考虑进行方法提取来优化代码。
我们可以将参数检查的逻辑提取为一个独立的方法,如下所示:
void validateInputs(String name, double monthlySalary) {
if (monthlySalary < 0) {
throw new IllegalArgumentException("Monthly salary cannot be negative.");
}
if (name == null || name.isEmpty()) {
throw new IllegalArgumentException("Name cannot be null or empty.");
}
}
然后,在原方法调用前先调用新提取出的方法,示例如下:
double calculateYearlySalary(String name, double monthlySalary) {
validateInputs(name, monthlySalary);
double yearlySalary;
// 假设还有其他的逻辑
yearlySalary = monthlySalary * 12;
return yearlySalary;
}
通过提取方法,我们使得原方法更加简洁明了,而且将参数检查的逻辑抽取到一个独立的方法中,可以提高代码的可读性和可维护性。同时,提取出的方法也可以在其他地方进行重用,避免了代码的重复编写。
总结:方法提取重构可以在需要复用一段相同或类似的代码逻辑时使用,通过提取出一个独立的方法来实现代码的重用和逻辑的整理,提高代码的可读性、可维护性和重用性。