Tôi chống lại ý tưởng bảo vệ một cách mù quáng đối với null cho từng trường có sẵn trong mã và bên trong mỗi phương thức.
sau đây giúp tôi quyết định về nơi để kiểm tra đối với các giá trị null:
1- Ai sẽ gọi phương pháp của bạn?
Nếu phương thức là riêng tư và bạn có quyền kiểm soát cách thức truy cập, tôi không thấy nó có ý nghĩa để bảo vệ chống lại kiểm tra rỗng trừ khi nó là một phần của logic của phương thức để mong đợi giá trị null. Nếu một phương pháp được tiếp xúc với công chúng (Chẳng hạn như một API), thì tất nhiên kiểm tra null phải là một mối quan tâm lớn.
2- Phần mềm thiết kế:
ảnh bạn đã được gọi method1(fromAnimalToString(animal));
và vì một lý do fromAnimalToString()
không bao giờ trả về null (Mặc dù có thể trả về một chuỗi rỗng thay vì).
Sau đó, trong trường hợp này, nó sẽ không làm cho tinh thần để kiểm tra animal != null
trong method1() 's cơ thể
3 Kiểm tra:
Trong công nghệ phần mềm, đó là hầu như không thể kiểm tra tất cả các tình huống có thể là có thể bao giờ hết thi hành. Tuy nhiên, kiểm tra các kịch bản bình thường và thay thế và đảm bảo luồng như mong đợi.
Sẽ không dễ dàng hơn khi chỉ kiểm tra xem tham chiếu đến đối tượng có phải là 'null' không? Bạn cũng có thể đi một tuyến đường khác và đảm bảo đối tượng bạn sử dụng, không thể là rỗng. –
Đối với tham chiếu * mọi * đối tượng? : o Một số trong số chúng sẽ không bao giờ rỗng (chúng được đặt trong hàm tạo). –
Thậm chí nếu bạn không sử dụng các Hợp đồng Mã, bạn nên viết các điều khoản bảo vệ ở đầu các phương thức của mình. – jason