Như bạn nói, các sự kiện là một công cụ tuyệt vời để giảm sự ghép nối giữa các lớp; Vì vậy, trong khi nó có thể liên quan đến việc viết mã bổ sung bằng một số ngôn ngữ mà không có hỗ trợ tích hợp cho các sự kiện, nó làm giảm sự phức tạp của bức tranh lớn.
Các sự kiện được cho là một trong những công cụ quan trọng nhất trong OO (Theo Alan Kay - Đối tượng giao tiếp bằng cách gửi và nhận tin nhắn ). Nếu bạn sử dụng một ngôn ngữ có hỗ trợ tích hợp cho các sự kiện hoặc coi các chức năng là công dân hạng nhất, thì việc sử dụng chúng là không có trí tuệ.
Ngay cả trong các ngôn ngữ không có hỗ trợ tích hợp, số lượng soạn sẵn cho một cái gì đó giống như mẫu Observer là khá nhỏ. Bạn có thể tìm thấy một thư viện sự kiện chung chung ở đâu đó mà bạn có thể sử dụng trong tất cả các ứng dụng của mình để giảm thiểu bản tóm tắt. (Một trình tổng hợp sự kiện chung hoặc hòa giải sự kiện là hữu ích trong hầu hết mọi loại ứng dụng).
Có đáng giá trong một ứng dụng nhỏ? Tôi chắc chắn sẽ nói có .
- Giữ các lớp tách rời nhau giữ cho biểu đồ phụ thuộc lớp của bạn sạch sẽ.
- Các lớp không có bất kỳ phụ thuộc cụ thể nào có thể được kiểm tra riêng rẽ mà không cần xem xét cho các lớp khác trong các thử nghiệm.
- Các lớp không có bất kỳ phụ thuộc cụ thể nào yêu cầu ít bài kiểm tra đơn vị hơn để bảo hiểm hoàn chỉnh.
Nếu bạn đang nghĩ "Ồ nhưng nó thực sự chỉ là một ứng dụng rất nhỏ, nó không thực sự quan trọng đến thế" , hãy xem xét:
- Các ứng dụng nhỏ đôi khi cuối cùng được kết hợp với các ứng dụng lớn hơn sau này.
- Các ứng dụng nhỏ có thể bao gồm ít nhất một số logic hoặc thành phần mà sau này có thể cần được sử dụng lại trong các ứng dụng khác.
- Các yêu cầu cho các ứng dụng nhỏ có thể thay đổi, khiến nhu cầu cấu trúc lại, dễ dàng hơn khi mã hiện tại được tách rời.
- Các tính năng bổ sung có thể được thêm vào sau đó, nhắc nhở cần phải mở rộng mã hiện tại, điều này cũng dễ dàng hơn nhiều khi mã hiện tại đã được tách rời.
- Mã được ghép lỏng lẻo thường không mất nhiều thời gian để viết hơn mã được ghép chặt chẽ; nhưng mã được ghép chặt chẽ mất nhiều thời gian hơn để cấu trúc lại và kiểm tra so với mã được ghép lỏng lẻo.
Nhìn chung, kích thước của một ứng dụng không phải là một yếu tố quyết định trong việc có nên giữ các lớp liên kết lỏng lẻo hay không; Nguyên tắc RẮN không chỉ dành cho các ứng dụng lớn, chúng áp dụng cho phần mềm và cơ sở mã ở mọi quy mô.
Trong thực tế, thời gian được lưu trong đơn vị kiểm tra các lớp được ghép lỏng lẻo của bạn trong sự cô lập sẽ cân bằng với bất kỳ thời gian bổ sung nào dành cho việc tách rời các lớp đó.