그래서 이것이 좋은 코드 디자인인지 나쁜 코드인지 모릅니다. 그래서 더 잘 물어볼 것이라고 생각했습니다.
클래스를 사용하여 데이터 처리를 수행하는 메소드를 자주 작성하며, 사전에 널 참조 나 기타 오류가 발생하지 않도록 메소드를 많이 점검합니다.
매우 기본적인 예를 들면 다음과 같습니다.
// 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);
}
따라서 매번 null을 확인하는 im을 볼 수 있습니다. 그러나 방법 에이 검사가 없어야합니까?
예를 들어 외부 코드는 데이터를 미리 정리하여 메소드가 다음과 같이 유효성을 검사 할 필요가 없도록해야합니다.
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
요약하면, 메소드는 "데이터 유효성 검증"이어야하고 데이터에 대한 처리를 수행해야하거나 메소드를 호출하기 전에 보장되어야하며 메소드를 호출하기 전에 유효성 검증에 실패하면 오류가 발생합니다 (또는 오류)?