Question

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'ils sont appelés non par d'autres méthodes de la même classe, mais par une autre bibliothèque à travers la réflexion?

Par exemple, si une méthode privée private DoSomething(int number) attend cela:

  • number est un entier non nul positif, et:
  • une variable privée string abc n'est pas nul et pas une chaîne vide,

Et complètement, laid échoue si ces deux conditions ne sont pas appariées, dois-je gérer ces échecs même si je sais que toutes les méthodes de la classe sera Affectez toujours une valeur non vide à abc Avant d'appeler DoSomething, et passer un entier non nul positif à cette méthode?

Autrement dit, Le code qui n'est pas protégé contre les appels dangereux par la réflexion peut être considéré comme un code de faible qualité, ou il appartient à l'appelant qui utilise la réflexion pour s'assurer que l'appel ne rompt 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 le faire se comporter de façon inattendue ou de se crash).


¹ Parce que la classe est correctement documentée, car il y a suffisamment de tests unitaires pour être sûr que tout autre développeur ne brisera pas cette méthode, etc.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top