Nella lettura del modello di progettazione di Observer, ho notato che è implementato usando le interfacce. In Java, l'implementazione java.util.observable è anche una classe. Le versioni C# e Java non dovrebbero usare le interfacce?Perché .NET ObservableCollection <T> implementato come classe e non come interfaccia?
Scott
Come si può "implementare come interfaccia"? Se qualcosa è già implementato, è una classe, non è vero? Un'interfaccia non è implementata da sola. – Kobi
Tuttavia, il significato della domanda è valido. C'è un enorme vuoto nel grafico dell'oggetto .net con ObservableCollection. La sua funzionalità avrebbe dovuto essere separata in diverse interfacce al fine di consentire l'estensibilità in un modo più flessibile. Ad esempio, se implemento un ObservableDictionary : INotifyCollectionChanged, non posso utilizzarlo come origine per ReadOnlyObservableCollection . L'implementazione attuale non è basata su modelli e non supporta affatto lo sviluppo basato su modelli. –