Tôi có một ứng dụng bao gồm nhiều hội đồng khác nhau, một trong số đó nắm giữ các giao diện khác nhau mà các lớp tuân theo và theo đó các lớp giao tiếp qua các biên giới lắp ráp. Có một số lớp học kích hoạt các sự kiện và một số sự kiện quan tâm đến những sự kiện này.C# Thực hành tốt nhất: Bộ điều khiển sự kiện tập trung hoặc không
Câu hỏi của tôi như sau: thực tiễn tốt là triển khai EventConsolidator trung tâm của một số loại? Điều này sẽ được đánh giá cao, vì nó sẽ cần phải biết tất cả các lớp (hoặc ít nhất là giao diện) ném một sự kiện, và mọi người tiêu dùng của một sự kiện sẽ cần phải có một tham chiếu đến EventConsolidator để đăng ký.
Hiện tại tôi có tình huống mà lớp A biết lớp B (nhưng không phải C), lớp B biết lớp C, v.v. Sau đó, nếu C kích hoạt sự kiện B cần nhặt nó lên và kích hoạt sự kiện riêng của nó để cho A để đáp ứng. Những loại dây chuyền này có thể khá dài, và có thể là B chỉ quan tâm đến sự kiện để vượt qua nó. Tôi không muốn A biết về C mặc dù, vì điều đó sẽ phá vỡ đóng gói.
Thực tiễn tốt trong tình huống này là gì? Tập trung các sự kiện, hoặc cười và mang nó và xác định các sự kiện trong mỗi lớp trung gian? Hoặc các tiêu chí để đưa ra quyết định là gì? Cảm ơn!
Chỉnh sửa: Here là một câu hỏi khác về cơ bản giống nhau.
Cảm ơn Jon, luôn hữu ích như mọi khi! Đó là những gì tôi đang tìm kiếm trong trường hợp này, cổ vũ. –
Một lời cảnh cáo. Nó có thể rất khó hiểu khi giá trị "người gửi" không phải là đối tượng mà bạn đã đăng ký. – Andreas