Donc, je ne sais pas si c'est une bonne ou une mauvaise conception de code, alors j'ai pensé que je ferais mieux de demander.
Je crée souvent des méthodes qui traitent des données impliquant des classes et je fais souvent beaucoup de vérifications dans les méthodes pour m'assurer de ne pas obtenir de références nulles ou d'autres erreurs à l'avance.
Pour un exemple très basique:
// 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);
}
Donc, comme vous pouvez le voir, je vérifie la valeur null à chaque fois. Mais la méthode ne devrait-elle pas avoir cette vérification?
Par exemple, le code externe doit-il nettoyer les données au préalable afin que les méthodes n'aient pas besoin d'être validées comme ci-dessous:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
En résumé, les méthodes doivent-elles "valider les données" et ensuite être traitées sur les données, ou doivent-elles être garanties avant d'appeler la méthode, et si vous ne validez pas avant d'appeler la méthode, elle devrait générer une erreur (ou intercepter le Erreur)?