Tôi đang tự hỏi về thực hành tốt nhất ở đây. Có thực hành tốt cho phương pháp nhà máy để trả về null nếu nó không thể tạo ra bất kỳ thứ gì? Dưới đây là ví dụ:Có OK cho phương thức factory để trả về null không?
ICommand command = CommandFactory.CreateCommand(args);
if (command != null)
command.Execute();
else
// do something else if there is no command
Một cách khác là trả lại NullCommand
hoặc một điều gì đó, tôi đoán, nhưng cách tốt nhất là gì?
Đồng ý với @Jon Skeet. Tạo hàm tạo hàm ý, và bạn không mong đợi một null từ một trong số chúng, vì vậy không chắc bạn sẽ kiểm tra xem đó có phải là những gì nó đã làm hay không. –
@TonyHopkinson: Ở phía bên kia, bạn sẽ không mong đợi một ngoại lệ từ một nhà xây dựng hoặc. –
@TimSchmelter: Tại sao không? Tôi sẽ * hoàn toàn * mong đợi một ngoại lệ từ các nhà thầu trong các tình huống nhất định - 'FileStream' là một ví dụ cổ điển ...hoặc bất kỳ thông số nào có thể không hợp lệ dưới bất kỳ hình thức nào, ví dụ: đưa ra một tham chiếu null cho một cái gì đó mong đợi một tham chiếu không null. –