Vì vậy, tôi không biết đây là thiết kế mã tốt hay xấu nên tôi nghĩ tôi nên hỏi.
Tôi thường tạo các phương thức xử lý dữ liệu liên quan đến các lớp và tôi thường thực hiện nhiều kiểm tra trong các phương thức để đảm bảo rằng tôi không nhận được các tham chiếu null hoặc các lỗi khác trước khi xử lý.
Ví dụ rất cơ bản:
// fields and properties
private Entity _someEntity;
public Entity SomeEntity => _someEntity;
public void AssignEntity(Entity entity){
_someEntity = entity;
}
public void SetName(string name)
{
if (_someEntity == null) return; //check to avoid null ref
_someEntity.Name = name;
label.SetText(_someEntity.Name);
}
Vì vậy, như bạn có thể thấy tôi đang kiểm tra null mỗi lần. Nhưng phương pháp không nên có kiểm tra này?
Ví dụ, mã bên ngoài nên làm sạch dữ liệu trước khi sử dụng để các phương thức không cần xác thực như dưới đây:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
Tóm lại, các phương thức nên là "xác thực dữ liệu" và sau đó thực hiện xử lý dữ liệu của chúng hoặc nên được bảo đảm trước khi bạn gọi phương thức và nếu bạn không xác thực trước khi gọi phương thức thì nó sẽ báo lỗi (hoặc bắt lỗi lỗi)?