Có thực hành không tốt để chuyển đối số NULL cho các phương thức hay nói cách khác chúng ta nên có định nghĩa phương thức cho phép đối số NULL làm đối số hợp lệ.Đối số NULL có phải là một thực tế không tốt?
Giả sử tôi muốn hai phương thức 1. để truy xuất danh sách tất cả các công ty 2. để truy xuất danh sách các công ty dựa trên bộ lọc.
Chúng ta có thể có hai phương pháp như như dưới đây
List<Company> getAllCompaniesList();
List<Company> getCompaniesList(Company companyFilter);
hoặc chúng tôi có thể có một phương pháp duy nhất
List<Company> getCompaniesList(Company companyFilter);
đây trong trường hợp thứ hai, nếu đối số là NULL thì phương pháp trở lại danh sách tất cả các công ty.
Bên cạnh câu hỏi về thực tiễn tốt, thực tế tôi thấy một vấn đề khác với cách tiếp cận sau được giải thích bên dưới.
Tôi đang triển khai Spring AOP, trong đó tôi muốn có một số kiểm tra về các đối số như 1. Đối số NULL? 2. Kích thước của bộ sưu tập là 0?
Có một số tình huống mà chúng ta không thể có đối số null ở tất cả như cho phương pháp
void addBranches(int companyId, List<Branch>);
kiểm tra này có thể được thực hiện rất tốt bằng cách sử dụng Spring AOP bằng cách định nghĩa phương pháp như sau
@Before(argNames="args", value="execution(* *)")
void beforeCall(JoinPoint joinPoint ,Object[] args)
{
foreach(Object obj in args)
{
if(obj == NULL)
{
throw new Exception("Argument NULL");
}
}
}
Nhưng vấn đề tôi đang phải đối mặt là kể từ khi tôi đã xác định một số phương pháp mà nên chấp nhận NULL đối số cho nhiều chức năng của một phương pháp duy nhất như đã đề cập ở trên cho phương pháp Danh sách getCompaniesList (Company companyFilter); Vì vậy, tôi không thể áp dụng AOP thống nhất cho tất cả các phương pháp và không phải một số biểu thức cho các phương thức khớp tên sẽ hữu ích ở đây.
Vui lòng cho tôi biết nếu cần thêm thông tin hoặc sự cố không đủ mô tả.
Cảm ơn bạn đã đọc sự cố của tôi và suy nghĩ về nó.
Đó là vấn đề về phong cách. Không có câu trả lời đúng. –