[Thực hành] Refactoring – tách phương thức

Mục tiêu

Luyện tập kỹ thuật tách phương thức.

Mô tả

Trong phần này, chúng ta sẽ áp dụng kỹ thuật tách phương thức dựa trên mã nguồn có sẵn.

Hướng dẫn

Bước 1: Chạy mã nguồn có sẵn

Tải mã nguồn về từ địa chỉ: https://github.com/codegym-vn/java-cleancode-refactoring-method-extraction

Mở file Cylinder.java và CylinderTest.java để tìm hiểu về mã nguồn.

Bước 2: Áp dụng kỹ thuật tách phương thức

Ở trong mã nguồn hiện tại, phương thức getVolume() đang thực hiện quá nhiều công việc:

  • Tính diện tích đáy
  • Tính chu vi của hình trụ
  • Tính thể tích của hình trụ

Do đó, chúng ta cần tách thành các phương thức riêng biệt để mã nguồn trở nên gọn gàng và dễ quản lý hơn.

Trong trường hợp này, chúng ta sẽ tách thêm 2 phương thức để thực hiện các nhiệm vụ:

  • getBaseArea(): Tính diện tích đáy
  • getPerimeter(): Tính chu vi

Mã nguồn sau khi tách phương thức:

public class Cylinder {
public static double getVolume(int radius, int height){
double baseArea = getBaseArea(radius);
double perimeter = getPerimeter(radius);
double volume = perimeter * height + 2 * baseArea;
return volume;
}

private static double getPerimeter(int radius) {
return 2 * Math.PI * radius;
}

private static double getBaseArea(int radius) {
return Math.PI * radius * radius;
}
}

Lưu ý: Sau mỗi bước refactor thì cần chạy lại các test case để đảm bảo mã nguồn đang hoạt động tốt.

Hướng dẫn nộp bài

– Up bài lên Github

– Paste link vào phần nộp bài và nhấn submit

Bài viết liên quan

Leave a Reply

Your email address will not be published.