searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

《重构:改善既有代码的设计》读书笔记(二)

2024-06-03 09:18:00
8
0

《重构:改善既有代码的设计》读书笔记(二)

1、提取方法的概念

提取方法(Extract Method)是一种常见的代码重构技巧,它涉及到将一个长方法中的一部分代码分离出来,形成一个新的方法。这样做的目的是为了提高代码的可读性和可维护性,同时也便于代码的复用。通过提取方法,可以将复杂的逻辑封装在单独的方法中,使得主方法更加简洁明了,易于理解和管理。

提取方法的代码案例

以下是一个简单的代码重构案例,展示了如何从一个长方法中提取出一个新的方法:

原始代码

public class Employee {
    private String name;
    private int age;
    private double salary;

    public Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    // 长方法
    public void printEmployeeInfo() {
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("薪水:" + salary);
    }
}

在上面的例子中,printEmployeeInfo 方法包含了三个打印语句,这些语句可以分别封装成三个方法,如下所示:

重构后的代码

public class Employee {
    private String name;
    private int age;
    private double salary;

public Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

// 提取方法1
    private void printName() {
        System.out.println("姓名:" + name);
    }

// 提取方法2
    private void printAge() {
        System.out.println("年龄:" + age);
    }

// 提取方法3
    private void printSalary() {
        System.out.println("薪水:" + salary);
    }

// 使用提取的方法替换原来的长方法
    public void printEmployeeInfo() {
        printName();
        printAge();
        printSalary();
    }
}

通过提取方法,我们将 printEmployeeInfo 方法拆分成了三个更小的方法,每个方法只负责打印一个属性。这样,代码更加清晰、易于理解和维护。

提取方法的好处

  • 提高代码可读性:通过提取方法,可以将复杂的逻辑封装在单独的方法中,使得主方法更加简洁明了,易于理解和管理。
  • 促进代码复用:提取出的方法可以在不同的地方被多次调用,从而避免了代码的重复。
  • 降低维护成本:当需要修改某个功能时,只需修改对应的方法,而不必遍历整个代码库寻找相关的代码段。

二、常见的代码重构技巧

代码重构是软件开发过程中的一个重要环节,它有助于改善代码的质量、可读性、可维护性和性能。以下是一些常见的代码重构技巧:

  1. 提炼方法(Extract Method):将一段代码逻辑提取为一个独立的方法,以提高代码的可读性和重用性。
  2. 重命名变量和方法(Rename):给变量、方法、类等命名一个更具描述性和准确性的名称,以提高代码的可读性和理解性。
  3. 消除长方法(Eliminate Long Method):尽量将长方法拆分成多个短方法,每个方法只完成一个特定的功能。
  4. 去掉全局变量(Remove Global Variables):使用参数传递或返回值来替代全局变量,降低代码的耦合度。
  5. 使用设计模式(Use Design Patterns):将常见的代码结构抽象成设计模式,以提高代码的可扩展性和可维护性。
  6. 去掉无用代码(Remove Dead Code):删除未使用的变量、方法和类等,减少代码的冗余。
  7. 简化条件语句(Simplify Conditionals):使用更简洁的条件语句来替代复杂的嵌套条件语句,提高代码的可读性。
  8. 封装字段(Encapsulate Field):将类的字段封装成私有属性,并提供公共的getter和setter方法,以保护字段的安全性和一致性。
  9. 消除重复代码(Remove Duplication):提取重复的代码到一个公共的方法或类中,避免代码重复。
  10. 重构数据库访问(Refactor Database Access):将直接操作数据库的代码封装到Repository或DAO中,实现数据访问逻辑与业务逻辑的分离。

以上就是关于提取方法的概念、代码案例以及好处的解释。希望这些信息能够帮助您更好地理解和应用这一重构技巧。

0条评论
0 / 1000