Tôi đã tự hỏi làm thế nào người ta có thể ẩn dữ liệu có điều kiện trong lớp học. Ví dụ: , cho phép nói rằng tôi có một lớp được gọi là Ô tô có ba trường: Engine, MeterReading và Mileage.Làm thế nào để thực hiện đóng gói có điều kiện trong C#
Tôi có ba thực thể khác được gọi là: Trình điều khiển, Cơ khí và Hành khách. Bây giờ những gì tôi muốn là:
A Driver chỉ nên có thể truy cập Mileage (và không Động cơ và MeterReading)
Một Mechanic chỉ sẽ có thể truy cập Công cụ và Mileage (và không MeterReading)
Hành khách chỉ có thể truy cập MeterReading (và không phải Công cụ và Mileage)
Cách tốt nhất để thực hiện điều này là gì .. (không căn cứ toàn bộ logic trên các câu lệnh khác)?
Bất kỳ ý tưởng nào?
Cảm ơn.
Tất nhiên cần phải chỉ ra rằng chỉ bảo vệ chống lại tai nạn khi mã hóa, nhưng nó không phải là biện pháp bảo mật đối với các máy khách thù địch vì mã máy khách vẫn có thể tạo một thể hiện 'IUsableByPassenger' thành' Car' và sau đó tới 'IUsableByMechanic' và tất cả những người khác. – Timwi
Chắc chắn, nhưng không có cách nào để tránh điều đó khi phơi bày bất kỳ đối tượng nào có khả năng bằng cách nào đó làm nhiều hơn việc tiếp xúc. Người ta luôn có thể sử dụng sự phản chiếu để tìm một loại, đọc các tư liệu, vv – NOtherDev
@A: Có thể ngăn chặn mã máy khách không tin cậy bằng cách sử dụng sự phản chiếu, nhưng không ngăn cản việc truyền đơn giản. – Timwi