Khi tạo một thư viện, tôi phải đảm bảo rằng các phương thức riêng tư phải hoạt động như mong đợi khi được gọi không phải bởi các phương thức khác của cùng một lớp, mà bởi một thư viện khác thông qua sự phản chiếu ?
Ví dụ: nếu một phương thức riêng private DoSomething(int number)
dự kiến rằng:
number
là một số nguyên dương khác không và:- một biến riêng
string abc
không phải là null và không phải là một chuỗi rỗng,
và hoàn toàn, thất bại xấu nếu hai điều kiện đó không khớp nhau, tôi phải xử lý các lỗi đó ngay cả khi tôi biết rằng tất cả các phương thức trong lớp sẽ luôn luôn gán một giá trị không trống cho abc
trước khi gọi DoSomething
và chuyển một số nguyên dương khác không cho điều này phương pháp?
Nói cách khác, mã không được bảo vệ chống lại các cuộc gọi không an toàn thông qua phản xạ có thể được coi là mã chất lượng thấp hay thuộc về người gọi sử dụng phản xạ để đảm bảo rằng cuộc gọi không phá vỡ bất cứ điều gì?
Lưu ý: câu hỏi của tôi chỉ bao gồm một bộ thư viện tiêu chuẩn. Điều này không bao gồm mã phải được bảo mật cao (nghĩa là khi ai đó có thể quan tâm bằng cách sử dụng sự phản chiếu để làm cho nó hoạt động bất ngờ hoặc sụp đổ).
Bởi vì lớp được ghi lại chính xác, bởi vì có đủ các bài kiểm tra đơn vị để chắc chắn rằng bất kỳ nhà phát triển nào khác sẽ không phá vỡ phương thức này, v.v.