Створюючи бібліотеку, чи повинен я переконатися, що приватні методи повинні працювати так, як очікувалося, коли їх викликають не інші методи того ж класу, а інша бібліотека через рефлексію ?
Наприклад, якщо приватний метод private DoSomething(int number)
очікує, що:
number
- це додатне ненульове ціле число, і:- приватна змінна
string abc
не є нульовою та не порожньою рядком,
і повністю, потворне не вдається, якщо ці дві умови не збігаються, чи повинен я поводитися з цими відмовами, навіть якщо я знаю, що всі методи в класі завжди будуть призначати не порожнє значення abc
перед викликом DoSomething
, і передавати цьому додатне ненульове ціле число метод?
Іншими словами, чи код, який не захищений від небезпечних дзвінків через відображення, може вважатися кодом низької якості , або він належить тому, хто телефонує, що використовує рефлексію, щоб гарантувати, що дзвінок нічого не порушує?
Примітка: моє запитання стосується лише стандартного набору бібліотек. Це не охоплює код, який повинен бути дуже захищеним (тобто коли хтось може зацікавитись, використовуючи відображення, щоб змусити його поводитись несподівано або зірватися).
¹ Оскільки клас правильно задокументований, оскільки є достатньо одиничних тестів, щоб бути впевненим, що будь-який інший розробник не порушить цей метод тощо.