Thoạt nhìn, tôi sẽ nói rằng sẽ tốt hơn nếu làm cho mã chung là phương thức tĩnh công khai trong lớp công khai. Điều này sẽ làm phương pháp hữu ích cho bất kỳ lớp học chỉ bằng cách sử dụng
UtilityClassName.methodName();
này là tốt hơn sau đó làm cho nó một phương pháp cụ thể trong một siêu lớp trừu tượng bởi vì khi đó bạn sẽ luôn luôn cần phải mở rộng siêu lớp này trong tất cả các lớp nơi bạn muốn sử dụng một phương pháp duy nhất này.
Nhưng bây giờ, như bạn đã nói rằng hành vi của phương pháp phụ thuộc vào một số biến. Bây giờ, nếu nó phụ thuộc vào các biến cá thể của các lớp khác nhau, thì tốt hơn hãy thêm phương thức này vào một giao diện và cho phép tất cả các lớp của bạn triển khai thực hiện giao diện này và có thực hiện riêng của chúng giống nhau.
Nhưng một lần nữa nếu các biến này là giá trị không đổi, thì có các giá trị không đổi này trong một giao diện. Thực hiện các giao diện này trong lớp tiện ích của bạn. Và một lần nữa làm cho nó trở thành một phương thức tĩnh trong lớp tiện ích sẽ trực tiếp sử dụng các hằng số này.
Ví dụ: Hãy xem xét foll. mã chung của khu vực trả về của một vòng kết nối.
public interface TwoDimensional{
double PI = 3.14;
}
public class MyUtility implements TwoDimensional{
public static double getCircleArea(double radius){
return PI*radius*radius;
}
}
Ở đây, bạn có thể thấy rằng phương pháp getCircleArea() phụ thuộc vào bán kính đó sẽ khác nhau cho các lớp học khác nhau nhưng tôi vẫn có thể vượt qua giá trị này vào phương thức tĩnh của lớp myUtility.
Không thể trả lời mà không có ngữ cảnh; rất nhiều phụ thuộc vào mức độ liên quan chặt chẽ của các lớp hiện tại, cách sử dụng các lớp và phương thức, v.v. –
Bạn phải cho chúng tôi biết thêm về các phương pháp này - nếu chúng có chung hành vi và có thể hoạt động độc lập với bất kỳ lớp nào các lớp với các phương thức tĩnh sẽ có ý nghĩa. Nếu bạn đang nghĩ đến việc sử dụng lớp trừu tượng/lớp cơ sở/giao diện, bạn phải xem xét liệu phân cấp lớp đó có hợp lý hay không và liệu các hàm này có thực sự là hành vi nội tại đối với các lớp đó hay không. về lớp họ là một phần của. – birryree
Bạn có thể giải thích phương thức và nếu tất cả các lớp đó có liên quan không? –