Al leer sobre el patrón de diseño Observer, noté que se implementa mediante interfaces. En Java, la implementación de java.util.observable es también una clase. ¿No deberían las versiones C# y Java usar interfaces?¿Por qué .NET ObservableCollection <T> se implementó como una clase y no como una interfaz?
Scott
¿Cómo se puede "implementar como interfaz"? Si algo ya está implementado, es una clase, ¿no es así? Una interfaz no se implementa por sí misma. – Kobi
Sin embargo, el significado de la pregunta es válido. Hay un gran hueco en el gráfico de objetos de la colección .net con ObservableCollection. Su funcionalidad debería haberse separado en diferentes interfaces para permitir la extensibilidad de una manera más flexible. Por ejemplo, si implemento un ObservableDictionary : INotifyCollectionChanged, no puedo usarlo como fuente para ReadOnlyObservableCollection . La implementación actual no se basa en patrones y no admite el desarrollo basado en patrones en absoluto. –