Lors de la création d'une bibliothèque, dois-je m'assurer que les méthodes privées doivent fonctionner comme prévu lorsqu'elles sont appelées non pas par d'autres méthodes de la même classe, mais par une autre bibliothèque par réflexion ?
Par exemple, si une méthode privée private DoSomething(int number)
s'attend à ce que:
number
est un entier positif non nul, et:- une variable privée
string abc
n'est pas nulle et pas une chaîne vide,
et complètement, laid échoue si ces deux conditions ne correspondent pas, dois - je gérer ces échecs , même si je sais que toutes les méthodes de la classe seront always¹ Assigner une valeur non-vide abc
avant d' appeler DoSomething
, et passer un entier non nul positif à cette méthode?
En d'autres termes, le code qui n'est pas protégé contre les appels dangereux par le biais de la réflexion peut-il être considéré comme un code de faible qualité , ou appartient-il à l'appelant qui utilise la réflexion pour s'assurer que l'appel ne casse rien?
Remarque: ma question ne couvre qu'un ensemble standard de bibliothèques. Cela ne couvre pas le code qui doit être hautement sécurisé (c'est-à-dire lorsque quelqu'un peut être intéressé par l'utilisation de la réflexion afin de la faire se comporter de manière inattendue ou se bloquer).
¹ Parce que la classe est correctement documentée, car il y a suffisamment de tests unitaires pour être sûr qu'aucun autre développeur ne cassera cette méthode, etc.