Nhiều ứng dụng web mà tôi đã đóng góp (chủ yếu là ASP.NET), cần xử lý nhiều loại người dùng khác nhau.Xử lý các loại người dùng khác nhau trong một ứng dụng
Giả sử bạn có cổng thông tin trường học, cả học sinh và giáo viên đều sử dụng hàng ngày. Trên trang đầu của ứng dụng, người dùng được gặp hầu như cùng một GUI ngoại trừ một số liên kết đến một số công cụ mà chỉ các giáo viên có quyền truy cập. Giả sử đây là một công cụ nhắn tin. Giáo viên có thể có các vai trò khác nhau để xác định ai là giáo viên có thể gửi.
Ví dụ:
- Một giáo viên với vai trò
Publisher
được phép gửi cho mọi người trong trường. - Giáo viên không có vai trò phụ chỉ được phép gửi cho mọi người trong lớp học của mình.
- Trong tương lai, phụ huynh cũng sẽ có thể truy cập vào cổng thông tin này và xem thông tin chi tiết về con cái của họ.
Vấn đề tôi luôn gặp phải là mã của tôi luôn bị lộn xộn với các câu hỏi if
khi xử lý các loại người dùng khác nhau trên ứng dụng. Không chỉ vì các loại người dùng khác nhau, mà còn bởi các quy tắc kinh doanh khác nhau. Tôi cảm thấy tôi không thể tìm thấy bất kỳ cách nào để xử lý đúng các loại người dùng khác nhau.
Tôi đoán khái niệm về vai trò trong loại ASP.NET giải quyết vấn đề này, nhưng bạn vẫn sẽ kết thúc với if
-báo cáo xung quanh ứng dụng.
Câu hỏi của tôi là: Có cách nào thực hành tốt nhất về cách xử lý người dùng/loại người dùng khác nhau trong một ứng dụng mà không lây nhiễm mã bằng if
-báo cáo không?
Nếu bạn có các lớp khác nhau cho từng loại người dùng, bạn sẽ 'trang trí' lớp học với các hành vi (được thực hiện bằng giao diện?) Sẽ cung cấp cho họ các thuộc tính xuất bản, v.v ...? –
Tôi e rằng tôi không hiểu chính xác câu hỏi của bạn. –
Câu hỏi của tôi là: Bạn sẽ thực hiện điều này như thế nào? Giả sử bạn có các lớp C# khác nhau cho từng loại người dùng. Điều gì sẽ cung cấp cho họ hành vi này của ví dụ: Xuất bản? Tôi đoán điều này được trả lời bằng cách nhìn vào mô hình Chiến lược, nhưng nó sẽ thực sự ngọt ngào nếu bạn có thể phác họa mã trông như thế nào. –