Khi đọc về mẫu thiết kế Observer, tôi nhận thấy rằng nó được thực hiện bằng cách sử dụng giao diện. Trong Java, việc thực thi java.util.observable cũng là một lớp. Các phiên bản C# và Java có nên sử dụng giao diện không?Tại sao .NET ObservableCollection <T> được triển khai dưới dạng lớp chứ không phải giao diện?
Scott
Làm cách nào để "triển khai dưới dạng giao diện"? Nếu một cái gì đó đã được thực hiện, nó là một lớp, phải không? Giao diện không được triển khai theo cách riêng của nó. – Kobi
Tuy nhiên, ý nghĩa của câu hỏi là viết tắt. Có một khoảng trống lớn trong biểu đồ đối tượng bộ sưu tập .net với ObservableCollection. Chức năng của nó nên được tách ra thành các giao diện khác nhau để cho phép mở rộng theo cách linh hoạt hơn. Ví dụ: nếu tôi triển khai ObservableDictionary : INotifyCollectionChanged, tôi không thể sử dụng nó làm nguồn cho ReadOnlyObservableCollection . Việc triển khai hiện tại không dựa trên mẫu và không hỗ trợ phát triển dựa trên mẫu. –