Trong ứng dụng Rails của chúng tôi, chúng tôi đang thêm thông báo. Một số trong số này là blocking
: Chúng ngăn chặn tiến trình của bất kỳ tài nguyên nào chúng được thêm vào, bởi vì một số thông tin về tài nguyên đó bị thiếu.
Các thông báo khác là thông báo đơn giản, và chỉ cung cấp thông tin.
Hôm nay tôi đã có một cuộc thảo luận với một lập trình viên khác trong nhóm của chúng tôi. Tôi đã tạo cấu trúc thừa kế như thế này:
Tuy nhiên, anh ta muốn tôi chỉ thêm blocking
vào như một phương thức trả về boolean trên mỗi Thông báo và chỉ định danh sách các lớp con đang chặn bên trong lớp cha Thông báo.
Sự khác biệt giữa các phương pháp này không lớn lắm; Theo cách tiếp cận của tôi, người ta không phải chỉ định danh sách này, giữ cho lớp gốc sạch hơn. Mặt khác, logic đặc biệt xảy ra Notification::Blocking
ngay bây giờ cũng không lớn lắm.
Loại trừu tượng nào phù hợp hơn cho vấn đề này?